gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:51:33 25 4
gpt4 key购买 nike

今天,当我想验证一个对象是否使用注入(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com