我的代码是......
public static void AssertNotNull(string name, T val) { if (val == null) throw new ArgumentNullException(String.Format("{0} must not be null", name)); }
Resharper推荐......
public static void AssertNotNull(string name, T val) { if (Equals(val, default(T))) throw new ArgumentNullException(String.Format("{0} must not be null", name)); }
Beardo.. 13
因为它不知道是否T
是值类型或引用类型,所以它使代码适用于两者.
因为它不知道是否T
是值类型或引用类型,所以它使代码适用于两者.
我是Berado的第二个答案,但是会补充一点,你可以通过添加下面的约束来防止这种情况:
public static void AssertNotNull(string name, T val) where T : class