C#:声明函数永远不会返回null?

Mat*_*asG 10 c# compiler-construction

背景: 有这个开发人员原则"如果请求的项目不存在,我的函数应该返回null还是抛出异常?" 我不想在这里讨论.我决定为所有必须返回值的情况抛出异常,并且只有在(编程或逻辑)无效请求的情况下才会存在此值.

最后我的问题是: 我可以标记一个函数,以便编译器知道它永远不会返回null并警告任何检查返回值是否为空的人?

dec*_*one 9

你可以使用Code Contracts.

示例:

    public String Method1()
    { 
        Contract.Ensures(Contract.Result<String>() != null);

        // To do
    }
Run Code Online (Sandbox Code Playgroud)

  • 嗯,这是开箱即用的.Net解决方案.这是.Net 4.0的正式部分. (2认同)