为什么是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/

10-11 04:44