为什么是Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull()
声明为:
public static void IsNotNull(Object value)
并不是:
public static void IsNotNull<T>(T value) where T : class
我只是认为一些经验不足的开发人员会传入一个值类型,认为如果值是0,它将抛出异常。
更新:
有没有一种方法可以将参数约束为C#1.0中的引用类型?
最佳答案
正如我在评论中所说,“为什么”的答案是因为编写Assert.IsNotNull
时C#1.0中没有泛型。更改它(虽然可以说(更)正确),但有可能破坏现有代码。不管是好是坏,Microsoft都非常重视保持现有代码的正常运行。
关于c# - Assert.IsNotNull()应该将参数约束为类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32555937/