小编Chr*_*man的帖子

什么是Y-combinator?

Y-combinator是一种来自事物"功能"方面的计算机科学概念.大多数程序员对组合器一无所知,如果他们甚至听说过它们的话.

  • 什么是Y-combinator?
  • 组合器如何工作?
  • 它们有什么用?
  • 它们在程序语言中有用吗?

theory computer-science functional-programming combinators definition

381
推荐指数
14
解决办法
10万
查看次数

.NET WinForms关键事件参数对象上的KeyCode和KeyData属性有什么区别?

的两个关键事件参数类KeyEventArgsPreviewKeyDownEventArgs各自具有两个属性,KeyCode并且KeyData,这两者都是枚举类型键.

这两个属性有什么区别?它们中的值是否彼此不同?如果是的话,何时以及为何?

.net events event-handling winforms

44
推荐指数
2
解决办法
6690
查看次数

DoDragDrop和MouseUp

是否有一种简单的方法可以确保在拖放操作无法完成后,MouseUp事件不被框架消耗掉并被忽略?

我找到了一篇描述一种机制的博客文章,但它涉及大量的手工簿记,包括状态标志,MouseMove事件,手动"鼠标离开"检查等等.如果它可以,我宁愿不必实施所有这些.避免.

.net events drag-and-drop winforms

17
推荐指数
1
解决办法
2万
查看次数

如何将EULA添加到VS2008安装项目?

这是一个非常简单的问题,答案很简单,但在互联网上找到答案并不是那么简单.

我在Visual Studio 2008中有一个简单的安装(部署)项目,我有EULA文本.在项目中我需要做什么才能将EULA纳入安装向导?

eula setup-project visual-studio-2008 visual-studio

12
推荐指数
1
解决办法
4253
查看次数

在安装期间初始化user.config或app.exe.config

我正在开发一个.NET WinForms应用程序,该应用程序依赖于user.config来存储各种有用的设置,例如Intranet Web服务URL.我们希望能够在安装过程中导入自定义初始设置.这种情况的用例是,如果一家公司有100台想要安装软件的机器,并且它们都应该引用相关的Intranet Web服务,则不需要在所有机器上手动设置.

我们目前正在使用VS2008安装项目来生成安装包.

到目前为止,我们的想法是让安装程序使用信息(来自模板)创建自定义的初始.config文件,然后将其放置到位,而不是安装项目安装的默认文件.

但是,除了这几个之外,我看不到这样做的方法:

  1. 将可执行文件名硬编码为自定义安装程序操作(从System.Configuration.Install.Installer派生),以便使用ConfigurationManager类来确定.config文件路径.如果可执行文件名称更改,则需要手动更改安装程序.
  2. 滚动我们自己的配置类或文件/文件夹层次结构以存储设置.如果我理解正确的话,这基本上会阻止我们从.NET提供的隔离机制(这也是这里的障碍)的优势.

有没有人知道任何替代品,或方法使上述两个可口?

我担心答案可能是"不要这样做,它会破坏机制的精神,滚动你自己的设置导入机制".

.net deployment configuration-files

11
推荐指数
1
解决办法
5864
查看次数

在.NET中,确定IEnumerable是否为空的什么是可靠,可重用的可靠代码?

我试图找到最可重用但优雅的代码片段,以确定是否有IEnumerable.在理想情况下,这应该是一个我可以在任何时候都需要告诉IEnumerable是否为空的函数.

虽然我已经为.NET 3.5开发了一个迄今为止运行良好的答案,但我目前的想法是没有完美的答案,因为IEnumerable可以在技术上封装一个集合(或迭代器队列)来修改底层结果它会迭代,这会导致问题.但是,这也是实现IEnumerable.Count()的障碍,并没有阻止MS提供它.

所以我想我会把它放到SO上看看是否有人有更好的,以防万一其他人应该发现它有用.

编辑: 哇,我不敢相信我不知道IEnumerable.Any.我知道它存在,但从来没有费心去检查它做了什么.让这成为一个教训.阅读文档.仅仅因为方法名称并不意味着它能够满足您的需求,并不意味着它不能满足您的需求.

.net collections

9
推荐指数
1
解决办法
658
查看次数

在Visual Studio 2010中开发和运行MSTest单元测试,不包括.vsmdi和.testsettings

我知道这在某种程度上是可能的,因为我们有一个项目包含可通过VS2010测试运行器运行的MSTest单元测试.我们甚至可以向现有项目添加新的测试方法或类,并且运行器将选择它们并将它们包含在测试运行中.

当我尝试向解决方案添加新的单元测试项目时出现问题.如果我将"测试项目"类型的项目添加到解决方案中,VS2010将生成测试元数据和设置文件,这些文件是在其他项目中运行任何其他测试所不需要的.例如,对于OSS项目,这是不合需要的.如果我只是添加一个普通的"类库"项目,并将单元测试放入其中,测试运行器会忽略它们,我根本无法识别它们.

我疯了吗?这是侥幸吗?甚至可以让VS2010运行我们的测试,而不需要.vsmdi文件或.testsettings文件?或者我错过了为新项目工作所需的设置或配置?

mstest metadata visual-studio-2010

9
推荐指数
1
解决办法
3389
查看次数

我的简单poll()示例仅部分有效

我已经包含了以下代码.该程序应该接受端口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)

c sockets networking polling

6
推荐指数
1
解决办法
3万
查看次数

如何为使用winforms进行视图的控制器类编写单元测试?

有没有人能够成功地单元测试方法,必要时,它们耦合到System.Windows.Forms.Form类?

我最近一直在研究一个C#winforms应用程序,尝试用MVC结构构建它.考虑到框架并非真正考虑到这一点,这很难实现.

但是,当您将单元测试投入混合时,它会变得更加困难.我一直在确保我的控制器没有耦合到具体的视图类,因此我可以使用存根/模拟进行单元测试.但是在某处引用Form类是不可避免的,并且这些方法确实需要进行测试.

我一直在使用Moq,因为它有一些很好的类型安全功能,并允许模拟混凝土类型.但不幸的是,它不允许我"期望"调用具体类型的方法或属性,既不是虚拟的也不是抽象的.由于Form类不是以子类化为基础构建的,因此这是一个大问题.我需要能够通过"期待"ShowDialog来模拟Form类以防止创建真正的窗口.

所以我无法运行与Form的子类进行大量交互的任何单元测试,我的观点是.

那里有没有人成功测试过这种类型的代码?你是怎么做到的?

这是其他模拟框架可以解决的问题吗?其他模拟框架使用的基于字符串的方法是否会受到相同的约束?我可以编写自己的显式长手模拟类,还是缺少虚拟成员会阻止我以这种方式抑制窗口行为?

或者是否有某种方式我没有想到构建我的类,以便形式耦合的代码最终在方法和类的复杂,所以我可以逃脱而不明确单元测试它们,没有我的良心打败我为了它?

.net model-view-controller unit-testing mocking winforms

5
推荐指数
1
解决办法
524
查看次数

如何从jqGrid单元格中删除CSS类?

可以使用setCell方法将CSS类添加到jqGrid单元格,如下所示.

grid.setCell(rowId, "ColumnName", "", "my-style-class");
Run Code Online (Sandbox Code Playgroud)

考虑到此方法似乎只能添加 CSS类,如何从jqGrid单元格中删除 CSS类?

css jqgrid

5
推荐指数
1
解决办法
7872
查看次数

是否可以重用.NET WinForms Form对象?

一旦窗口关闭,建议重用该窗口的Form实例以再次显示同一窗口?或者,当您要显示窗口时,是否需要或建议始终创建该类的全新实例.

这真正归结为在同一个对象上多次调用Show()或ShowDialog()是一个好主意,只要窗口在两者之间关闭即可.

如果不推荐这样做,也可以理解对潜在原因的解释.

.net winforms

4
推荐指数
1
解决办法
3168
查看次数