Mat*_*asG 10 c# compiler-construction
背景: 有这个开发人员原则"如果请求的项目不存在,我的函数应该返回null还是抛出异常?" 我不想在这里讨论.我决定为所有必须返回值的情况抛出异常,并且只有在(编程或逻辑)无效请求的情况下才会存在此值.
最后我的问题是: 我可以标记一个函数,以便编译器知道它永远不会返回null并警告任何检查返回值是否为空的人?
你可以使用Code Contracts.
示例:
public String Method1()
{
Contract.Ensures(Contract.Result<String>() != null);
// To do
}
Run Code Online (Sandbox Code Playgroud)