在编写自定义 NUnit 约束条件的方法时。
private void AddMatchFailure<TExpected, TActual>(string failureName, TExpected expected, TActual actual)
{
_matchFailures.Add(
String.Format(MatchFailureFormat, failureName,
(expected == null) ? "null" : expected.ToString(),
(actual == null) ? "null" : actual.ToString()));
}
Resharper警告expected
和actual
可能是ValueType
对象。
例如,TExpected是DateTime expected == null;// 但DateTime是一个结构体。
在比较值类型和null时有什么规则,我应该如何编写方法来考虑到这一点,而不限制泛型参数并添加类约束?
Object.ReferenceEquals(objA, null)
,这实际上只是在.NET源代码中调用objA == objB
。而且,我相当确定这将以某种方式被即时编译或内联。美妙的是,错误消息消失了,调用仍然有效 :) - myermian