Y-combinator是一种来自事物"功能"方面的计算机科学概念.大多数程序员对组合器一无所知,如果他们甚至听说过它们的话.
theory computer-science functional-programming combinators definition
的两个关键事件参数类KeyEventArgs
和PreviewKeyDownEventArgs
各自具有两个属性,KeyCode
并且KeyData
,这两者都是枚举类型键.
这两个属性有什么区别?它们中的值是否彼此不同?如果是的话,何时以及为何?
是否有一种简单的方法可以确保在拖放操作无法完成后,MouseUp事件不被框架消耗掉并被忽略?
我找到了一篇描述一种机制的博客文章,但它涉及大量的手工簿记,包括状态标志,MouseMove事件,手动"鼠标离开"检查等等.如果它可以,我宁愿不必实施所有这些.避免.
这是一个非常简单的问题,答案很简单,但在互联网上找到答案并不是那么简单.
我在Visual Studio 2008中有一个简单的安装(部署)项目,我有EULA文本.在项目中我需要做什么才能将EULA纳入安装向导?
我正在开发一个.NET WinForms应用程序,该应用程序依赖于user.config来存储各种有用的设置,例如Intranet Web服务URL.我们希望能够在安装过程中导入自定义初始设置.这种情况的用例是,如果一家公司有100台想要安装软件的机器,并且它们都应该引用相关的Intranet Web服务,则不需要在所有机器上手动设置.
我们目前正在使用VS2008安装项目来生成安装包.
到目前为止,我们的想法是让安装程序使用信息(来自模板)创建自定义的初始.config文件,然后将其放置到位,而不是安装项目安装的默认文件.
但是,除了这几个之外,我看不到这样做的方法:
有没有人知道任何替代品,或方法使上述两个可口?
我担心答案可能是"不要这样做,它会破坏机制的精神,滚动你自己的设置导入机制".
我试图找到最可重用但优雅的代码片段,以确定是否有IEnumerable.在理想情况下,这应该是一个我可以在任何时候都需要告诉IEnumerable是否为空的函数.
虽然我已经为.NET 3.5开发了一个迄今为止运行良好的答案,但我目前的想法是没有完美的答案,因为IEnumerable可以在技术上封装一个集合(或迭代器队列)来修改底层结果它会迭代,这会导致问题.但是,这也是实现IEnumerable.Count()的障碍,并没有阻止MS提供它.
所以我想我会把它放到SO上看看是否有人有更好的,以防万一其他人应该发现它有用.
编辑: 哇,我不敢相信我不知道IEnumerable.Any.我知道它存在,但从来没有费心去检查它做了什么.让这成为一个教训.阅读文档.仅仅因为方法名称并不意味着它能够满足您的需求,并不意味着它不能满足您的需求.
我知道这在某种程度上是可能的,因为我们有一个项目包含可通过VS2010测试运行器运行的MSTest单元测试.我们甚至可以向现有项目添加新的测试方法或类,并且运行器将选择它们并将它们包含在测试运行中.
当我尝试向解决方案添加新的单元测试项目时出现问题.如果我将"测试项目"类型的项目添加到解决方案中,VS2010将生成测试元数据和设置文件,这些文件是在其他项目中运行任何其他测试所不需要的.例如,对于OSS项目,这是不合需要的.如果我只是添加一个普通的"类库"项目,并将单元测试放入其中,测试运行器会忽略它们,我根本无法识别它们.
我疯了吗?这是侥幸吗?甚至可以让VS2010运行我们的测试,而不需要.vsmdi文件或.testsettings文件?或者我错过了为新项目工作所需的设置或配置?
我已经包含了以下代码.该程序应该接受端口8888上的telnet连接,然后使用poll和send和recv从每个telnet客户端发送和消息,但它不是100%工作.似乎某些连接总是可以向任何人发送消息,并且程序运行正常,但总有至少一个客户端无法发送消息.所有客户都可以随时收到.(民意调查不会注册传入的数据)
这段代码自己运行,所以如果你把它放在一个文件中并用gcc -o app filename.c编译它,那么你可以通过端口8888 telnet到localhost并看到它无效.:-(这段代码是为Fedora编写的,但不应该有任何非特定于Linux的内容.任何帮助都会非常感激.
#include <stdio.h>
#include <stdlib.h>
#include <poll.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/types.h>
#include <string.h>
#include <signal.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#define PORT 8888
#define MAX_CONN 10
#define SECOND 1000
#define TIMEOUT (30 * SECOND)
static int listen_socket();
int main(int argc, char **argv)
{
struct pollfd **my_fds; //array of pollfd structures for poll()
struct pollfd *curr, *new_conn; //so I can loop through
int num_fds; //count of how many are being used …
Run Code Online (Sandbox Code Playgroud) 有没有人能够成功地单元测试方法,必要时,它们耦合到System.Windows.Forms.Form类?
我最近一直在研究一个C#winforms应用程序,尝试用MVC结构构建它.考虑到框架并非真正考虑到这一点,这很难实现.
但是,当您将单元测试投入混合时,它会变得更加困难.我一直在确保我的控制器没有耦合到具体的视图类,因此我可以使用存根/模拟进行单元测试.但是在某处引用Form类是不可避免的,并且这些方法确实需要进行测试.
我一直在使用Moq,因为它有一些很好的类型安全功能,并允许模拟混凝土类型.但不幸的是,它不允许我"期望"调用具体类型的方法或属性,既不是虚拟的也不是抽象的.由于Form类不是以子类化为基础构建的,因此这是一个大问题.我需要能够通过"期待"ShowDialog来模拟Form类以防止创建真正的窗口.
所以我无法运行与Form的子类进行大量交互的任何单元测试,我的观点是.
那里有没有人成功测试过这种类型的代码?你是怎么做到的?
这是其他模拟框架可以解决的问题吗?其他模拟框架使用的基于字符串的方法是否会受到相同的约束?我可以编写自己的显式长手模拟类,还是缺少虚拟成员会阻止我以这种方式抑制窗口行为?
或者是否有某种方式我没有想到构建我的类,以便形式耦合的代码最终在方法和类的复杂,所以我可以逃脱而不明确单元测试它们,没有我的良心打败我为了它?
可以使用setCell方法将CSS类添加到jqGrid单元格,如下所示.
grid.setCell(rowId, "ColumnName", "", "my-style-class");
Run Code Online (Sandbox Code Playgroud)
考虑到此方法似乎只能添加 CSS类,如何从jqGrid单元格中删除 CSS类?
一旦窗口关闭,建议重用该窗口的Form实例以再次显示同一窗口?或者,当您要显示窗口时,是否需要或建议始终创建该类的全新实例.
这真正归结为在同一个对象上多次调用Show()或ShowDialog()是一个好主意,只要窗口在两者之间关闭即可.
如果不推荐这样做,也可以理解对潜在原因的解释.
.net ×6
winforms ×4
events ×2
c ×1
collections ×1
combinators ×1
css ×1
definition ×1
deployment ×1
eula ×1
jqgrid ×1
metadata ×1
mocking ×1
mstest ×1
networking ×1
polling ×1
sockets ×1
theory ×1
unit-testing ×1