1. 使用 string.Empty 代替长度为0的空字符串""。
// string s = ""; string s = string.Empty;
2. 触发事件时尽可能使用 EventArgs.Empty 替代 new EventArgs() 和 null。
public class Class1 { public event EventHandler OnEvent; private void DoEvent() { if (OnEvent != null) // OnEvent(this, new EventArgs()); // OnEvent(this, null); OnEvent(this, EventArgs.Empty); } }
3. 返回长度为0的数组,而不是null。这样调用者使用foreach时不会因为没有判断null而出错。
public int[] GetArray(int x) { if (x > 100) return new int[0]; else ... }
4. 尽可能使用string.Format,而不是+号。这样更容易阅读,而且修改起来更方便。
public string PersonalInfo(string name, int age) { //return "我的名字叫 " + name + ",我今年" + age + "岁了。"; return string.Format("我的名字叫 {0},我今年{1}岁了。", name, age); }
5. 对于确定不会被继承的类,请添加sealed关键字,以提高性能和避免意外继承造成潜在安全问题。
public sealed class Class1 { }
6. 对于静态类,请添加sealed关键字,并使用私有构造。
public sealed class Class1 { private Class1(){} public static void Test() { } public static void Test2() { } }
7. 对于用户在输入框输入的数字,我们可能习惯于下面的方式进行转换。
string s = this.TextBox1.Text.Trim(); int i = Convert.ToInt32(s);
其实有更简单的方法就是用Parse,提供NumberStyles会自动处理前后空格等多种意外情况。当然其他数值类型也有类似的方法。
int i = int.Parse(this.TextBox1.Text, NumberStyles.Any);
int i = int.Parse(" 123,456,900 ", NumberStyles.Any);