传递null作为构造函数/方法参数时的编译错误 - c#

时间:2015-10-22 07:20:40

标签: c# .net compiler-errors

今天,当我想验证一个对象是否使用注入的参数正确实例化时,我会这样做:

NSBezierCurve

但是如果我能在编译时捕获这些问题以避免运行时出错,我就会徘徊。

E.g。

public class SomeObject
{
    private object _someArgument;

    public SomeObject(object someArgument)
    {
        if (someArgument == null)
        {
            throw new ArgumentNullException("someArgument");
        }

        this._someArgument = someArgument;
    }
}

有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Code Contracts。它不会产生编译时错误。但是,它会对您的代码执行静态检查,并在检测到var someInstance = new SomeObject(null);

等代码时发出警告

你可以像这样使用它:

public SomeObject(object someArgument)
{
    Contract.Requires(someArgument != null);

    this._someArgument = someArgument;
}