要求在C#中对属性进行空安全访问

时间:2016-02-05 09:19:49

标签: c#

在C#中,有没有办法要求对属性的访问是空安全的。对于可能返回null的属性,如果在没有测试null的情况下使用该属性,则会产生编译时错误。

2 个答案:

答案 0 :(得分:1)

不,那是不可能的。如果类型可以为空,则无法在编译时进行此类检查。编译器无法确定在编译时检索到的值是否为空。

这段代码怎么样?你怎么知道someVariable在某个地方没有设置为null?也许甚至反思?

public string Property
{
    get { return someVariable; }
}

您应该做的是确保该属性永远不为null,或者作为消费者,以正确处理这些情况。

答案 1 :(得分:0)

空引用由其发明者保持为“My Billion Dollar Mistake”!在absence of non-nullable reference types中,使用code contractsvisual studio add-in来最小化空引用异常。