07 2012 档案
摘要:许多人容易混淆了SelectMany和Select的用法,作为扩展方法它们的区别何在呢?如果我们看这两个扩展函数的定义很容易明白——Select是把要遍历的集合IEnumerable<T>逐一遍历,每次返回一个T,合并之后直接返回一个IEnumerable<T>,而SelectMany则把原有的集合IEnumerable<T>每个元素遍历一遍,每次返回一个IEnumerable<T>,把这些IEnumerable<T>的“T”合并之后整体返回一个IEnumerable<T>。上述红色部分标记了它们最大的差别。因此我们可以说
阅读全文
摘要:枚举的作用就是用“字面量”的形式(附带智能提示)取代纯粹的数字化。假设某一个程序中有4盏灯,同时该程序带有一个输入源信号来输入究竟是那个灯点亮——显然定义一个枚举远远胜过用数字(1,2,3,4)表示具体某个灯亮好得多。因此枚举和数值往往是密不可分的。通常情况下枚举第一项默认是0,以后每项递增1;但是某些情况下(例如“多态枚举”——指一个枚举值可能包含多种枚举状态)的情况下,你完全为某些枚举指定对应的值,而且必须如此(理由后面说明)。譬如判断任意一个文件在Windows下的状态(假设3种):[C#]public enum FileAttributes{ Normal = 1 Hidden...
阅读全文
摘要:WinForm的一些控件具备自绘功能,这就意味着你可以对这些控件进行自绘,起到意想不到的效果。以下控件就是通过一些简单的控件转变过来的——1、横向选项卡:这个“横向”对话框其实是通过一个TabControl进行“方向旋转”、重绘控件项等操作进行实现的。步骤如下:1.1)Alignment:用于控制选项卡的方向(设置为Left)。1.2)SizeMode:用于调整每个选项卡,默认是Normal(非自绘模式),此处应该设置为Fixed(固定模式),则允许自绘。1.3)设置ItemSize(注意每一个选项卡因为是“横向”的,但是这些单元卡的Width或者是Height确实按照原来“竖向”的选项卡进行
阅读全文
摘要:直到目前为止,EntityFramework似乎没有UniqueAttribute这个属性,因而也就无法为数据模型表某个特定字段指定是Unique。那么怎么办呢?我们就DIY一次吧!首先自己写一个特性,该特性只能被用于property上,由于只是一个标记特性而以,因此类体为空——[C#] [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] public class UniqueKeyAttribute : Attribute { }[VB.NET]<Attri...
阅读全文
摘要:信息提示框(MessageBox)是微软NET自带的一个用于弹出警告、错误或者讯息一类的“模式”对话框。此类对话框一旦开启,则后台窗体无法再被激活(除非当前的MessageBox被点击或者关闭取消)。那么如何使用程序模拟鼠标点击这个messageBox(关闭这个MessageBox)呢?答案是你在弹出这个messageBox之前先启用一个定时器,定时器内部不断向窗体发送Enter按钮用于模拟点击MsgBox的内容,同时主程序中弹出模式消息框。代码如下(VS2012 RC 编写):我们假设窗体上就一个Button,点击这个Button将弹出5个msgbox,同时每个msgbox将延时2秒后自动关
阅读全文

浙公网安备 33010602011771号