Yip*_*Yay 1 c# convention null nullreferenceexception
是否C#有一些经验法则或编码约定契约,它处理可能的null论证?
作为一个例子,我正在编写一个自定义方法,它检索一个byte[] data参数.
public static string ConvertDataToMyOwnAndCustomString(byte[] data) { ... }
Run Code Online (Sandbox Code Playgroud)
现在-我应该怎么做,如果传递的data是null?
我应该保留它,以便可能NullReferenceException发生吗?或者我应该写支票并做这样的事情:
if (data == null) return null;
Run Code Online (Sandbox Code Playgroud)
普遍接受的模式是抛出一个 ArgumentNullException
if(data == null) { throw new ArgumentNullException("data"); }
Run Code Online (Sandbox Code Playgroud)
如果客户端传递null给您的方法确实是一个错误.现在,您甚至可以通过代码合同强制执行该要求:
Contract.Requires(data != null);
Run Code Online (Sandbox Code Playgroud)
当然,很可能null是你的方法不是错误的情况.那是你决定的,而不是我们.但是不要返回null向您的客户表明发生了错误.
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |