今天,当我想验证一个对象是否使用注入的参数正确实例化时,我会这样做:
NSBezierCurve
但是如果我能在编译时捕获这些问题以避免运行时出错,我就会徘徊。
E.g。
public class SomeObject
{
private object _someArgument;
public SomeObject(object someArgument)
{
if (someArgument == null)
{
throw new ArgumentNullException("someArgument");
}
this._someArgument = someArgument;
}
}
有可能吗?
答案 0 :(得分:2)
您可以使用Code Contracts。它不会产生编译时错误。但是,它会对您的代码执行静态检查,并在检测到var someInstance = new SomeObject(null);
你可以像这样使用它:
public SomeObject(object someArgument)
{
Contract.Requires(someArgument != null);
this._someArgument = someArgument;
}