Effective C# 原则38:使用和支持数据绑定

JerryXia 发表于 , 阅读 (2,511)
有经验的Windows程序员一定对写代码从一个控件上取值,以及把值存储到控件上很熟悉:public Form1 : Form { private MyType myDataValue; private TextBox textBoxName; private void InitializeComponent( ) { textBoxName.Text = myDataValue.Name; this.textBoxName.Leave += new ... 阅读全文

MicroSoft C#代码规范(Record)

JerryXia 发表于 , 阅读 (3,300)
一定请 将代表了读/写集合的属性或返回值声明为Collection或其子类,将代表了只读集合的属性或返回值声明为ReadOnlyCollection或其子类。您应该重新考虑对于 ArrayList 的使用,因为所有添加至其中的对象都被当做System.Object ,当从ArrayList取回值时,这些对象都会拆箱,并返回其真实的值类型。所以我们推荐您使用定制类型的集合,而不是ArrayList。比如,.NET在System.Collection.Specialized命名空间内为Stri... 阅读全文

Effective C# 原则37:使用标准的配置机制

JerryXia 发表于 , 阅读 (1,935)
我们要寻求一种避免直接写代码的应用程序配置和信息设置方法,我们已经创建了多种不同的策略来存储配置信息。而我们是要寻求一种正确的方法,我们要不断提高和改我们的想法,关于哪里是放置这些信息的好地方。INI文件?这是Windows3.1做的事,配置信息的结构是受限制的,而且在文件名上可能还会与其它程序程序相冲突。注册表?是的,是这个正确的想法,但它也有它的限制。乱七八糟的程序可能会通过在注册表里写一些错误信息来严重破坏计算机。正因为写注册表存在危险,一个应用程序必须有管理员权限来写注册表的一部份... 阅读全文

Effective C# 原则36:利用.Net运行时诊断

JerryXia 发表于 , 阅读 (1,875)
当有问题发生时,它们往往并不是在实验的时候发生的,机器有轻松调试的工具。在很多实际情况中,你不好修正的问题总是发生在用户的机器上,那里没有调试环境,也没有好的方法计算出问题的情况。在实际情况中,有经验的开发人员会创建一个方法,让系统在运行时捕获尽可能多的信息。.Net框架已经包含一些类集合,利用这些集合,你可以做一些通用的调试。而且这些类可以在运行时或者编译时进行配置。如果你利用它们,你就可以轻松的发现在实际运行时的问题。使用框架里已经存在的代码,你可以发送一条诊断信息到一个文件,或者到调... 阅读全文

Effective C# 原则35:选择重写函数而不是使用事件句柄

JerryXia 发表于 , 阅读 (2,082)
很多.Net类提供了两种不同的方法来控制一些系统的事件。那就是,要么添加一个事件句柄;要么重写基类的虚函数。为什么要提供两个方法来完成同样的事情呢?其实很简单,那就是因为不同的情况下要调用为的方法。在派生类的内部,你应该总是重写虚函数。而对于你的用户,则应该限制他们只使用句柄来响应一些不相关的对象上的事件。例如你很了一个很不错的Windows应用程序,它要响应鼠标点下的事件。在你的窗体类中,你可以选择重写OnMouseDown()方法:public class MyForm : Form ... 阅读全文

C#实现模拟可以继承的枚举类

JerryXia 发表于 , 阅读 (2,214)
自己本来想写可被继承的自定义枚举类的,可是写完了后发现其实不行,或者说我自己水平不高。。。。public class EnumBase<T> { protected string _name; protected T _value; public override string ToString() { return _name.ToString(); } /// <summary> ///... 阅读全文

Effective C# 原则34:创建大容量的Web API

JerryXia 发表于 , 阅读 (2,269)
交互协议的开销与麻烦就是对数据媒体的如何使用。在交互过程中可能要不同的使用媒体,例如在交流中要不同的使用电话号码,传真,地址,和电子邮件地址。让我们再回头来看看上次的订购目录,当你用电话订购时,你要回答售货员的一系列问题:“你可以把第一项填一下吗?” “这一项的号码是123-456” "您想订购多少呢?" "三件" 这样的问题一直要问到销售人员填写完所有的信息为止,例如还要知道你的订购地址,信用卡信息,运送地址,以及其它一些必须的信息来完成这比... 阅读全文