代码改变世界

利用DescriptionAttribute实现枚举字符串

2014-01-24 11:00 by 假面Wilson, 298 阅读, 0 推荐, 收藏, 编辑
摘要:我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比。当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribute来获取字符串。以下是例子先定义枚举 /// /// Campaign Mode /// public enum CampaignModeEnum { /// /// Inbound /// [DescriptionAttribute("Inbound")] Inbound, ... 阅读全文

Winform禁止容器内控件获得焦点时改变容器显示范围坐标

2014-01-20 15:18 by 假面Wilson, 620 阅读, 0 推荐, 收藏, 编辑
摘要:在Winform中当容器的可视高度无法显示所有控件并且容器的AutoScroll属性设置为True的情况下,但点击容器内某个未显示完整的控件时,会出现容器的滚动条自动下滚的情况。这是由于控件获得焦点时,容器的ScrollToControl事件被ScrollableControl类自动触发,用于更好的显示焦点控件的内容。我们可以通过重写ScrollToControl事件来处理。以Panel为例子,重写Panel控件。class PanelNoScrollOnFocus : Panel{ protected override System.Drawing.Point ScrollToCont... 阅读全文

SQL Server Index详解

2014-01-15 18:11 by 假面Wilson, 226 阅读, 0 推荐, 收藏, 编辑
摘要:最近在进行数据库调优,对索引的使用和其内部的运转一知半解。在园子里看到一篇相关文章非常好。留下印记以便日常查找。http://www.cnblogs.com/xwdreamer/archive/2012/07/06/2579504.html 阅读全文

DataGridView的单元格控制只能输入数字

2014-01-13 17:34 by 假面Wilson, 8956 阅读, 0 推荐, 收藏, 编辑
摘要:主要是应用DataGridView的EditingControlShowing事件。当单元格进入编辑模式时,可以处理执行该编辑控件的自定义初始化的此事件。public DataGridViewTextBoxEditingControl dgvTxt = null; // 声明 一个 CellEdit private void dgv2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { dgvTxt = (DataGrid... 阅读全文

.NET中的Action及Func泛型委托

2014-01-09 11:47 by 假面Wilson, 393 阅读, 0 推荐, 收藏, 编辑
摘要:委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储、传递,之后在任何时刻进行调用,因此,C#中函数回调机制的实现基本上依赖于委托。C#的delegate关键字用于声明委托,它具有将声明委托类型映射到System.Delegate类的能力,System.Delegate类位于mscorlib.dll中,是.NET的基础核心类之一。使用delegate关键字声明一个委托,实质上创建了System.Delegate的派生类,因此委托类型并非结构体也不是其它类型,它是一个类。一个委托对象也就是一个类的实例。以下是De 阅读全文

C# ?和??运算表达式

2014-01-08 15:32 by 假面Wilson, 564 阅读, 0 推荐, 收藏, 编辑
摘要:1、单问号(?) 作用:用于给变量设初化的时候,给变量(int类型)赋为null值,而不是0。 例子: public int a; //默认值为0 public int ?b; //默认值为null2、双问号(??) 作用:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过。 例子: public int? b; //默认值为null public int IsNullOrSkip() { return b ?? 0; //返回值为... 阅读全文

SQL Server 大数据量insert into xx select慢的解决方案

2014-01-07 11:32 by 假面Wilson, 12393 阅读, 0 推荐, 收藏, 编辑
摘要:最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表。按理说这是个很简单的SQL。可是在实际过程中却出现了超级长时间的执行过程。后来经过排查发现是大数据量insert into xx select造成。原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。经过研究重构了SQL语句问题解决。具体解决方案如下:1.update 和Delete操作当成一个事务处理2.Insert into前先删除索引3.将需要insert into的数据,拆分成不大于3000条/次去执行。 阅读全文

如何在WebService中重载方法

2013-12-25 15:41 by 假面Wilson, 1833 阅读, 2 推荐, 收藏, 编辑
摘要:1. 本来在WebService中这样写的重载方法,如下所示: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class DataObjectWebService : System.Web.Services.WebService { [WebMethod(EnableSession = true)] public int Add(int a, int b) { return a + b; 阅读全文

c# 终止线程

2013-10-30 17:28 by 假面Wilson, 1062 阅读, 0 推荐, 收藏, 编辑
摘要:最近在弄一个等待窗口,使用了线程去调用form。在结束线程这边碰到了些问题。调用:thread.Abort();thread.Join();老被ThreadAbortException异常抛出困扰。后来上网查询了相关信息,发现thread.Abort();就是通过ThreadAbortException异常来强制关闭线程的。为了不让这个异常抛出困扰,后来调用form的关闭事件来让线程终止。Form.Invoke((EventHandler)delegate { Form.Close(); });Thread.Join(); 阅读全文

ThreadStart中如何带参数

2013-10-24 14:56 by 假面Wilson, 20313 阅读, 1 推荐, 收藏, 编辑
摘要:1.ThreadStart线程执行带参数的方法,new Thread(new ThreadStart(delegate { ThreadTask(firstPage, lastPage); }));2.System.Threading.ParameterizedThreadStart其实没有必要,ThreadStart本来就是个委托,里面又来了个匿名方法。多了一次方法的调用,虽然性能不会影响什么,但看着很别扭。c#有一个委托System.Threading.ParameterizedThreadStart,就是来做这事的,从名字上也可又看出来是带参数的.下面是原型:// 表示在 System. 阅读全文
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 48 下一页