今天,当我想验证对象是否已使用注入(inject)的参数正确实例化时,我会执行以下操作:
public class SomeObject
{
private object _someArgument;
public SomeObject(object someArgument)
{
if (someArgument == null)
{
throw new ArgumentNullException("someArgument");
}
this._someArgument = someArgument;
}
}
但是我在徘徊,如果我能在编译时发现此类问题,以避免运行时出错。
例如。
// Get a compilation error since null was passed
var someInstance = new SomeObject(null);
有可能吗?
最佳答案
您可以使用Code Contracts。它不会产生编译时错误。但是,它会对您的代码执行静态检查,并在检测到var someInstance = new SomeObject(null);
之类的代码时发出警告
您可以像这样使用它:
public SomeObject(object someArgument)
{
Contract.Requires(someArgument != null);
this._someArgument = someArgument;
}
关于c# - 将null作为构造函数/方法参数传递时出现编译错误-C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33275346/