Console.WriteLine正确处理空字符串

use*_*949 6 .net c# console-application

只是发现Console.WriteLine可以null正确处理字符串Console.WriteLine((string)null);

我可以假设大多数类库正确处理空引用吗?

Pie*_*kel 10

没有.

这完全取决于您调用的方法.请参阅每种方法的MSDN文档,了解传递时的预期结果null.

null在调用其他人的API或库时做出假设绝对不安全,特别是如果您没有将其源代码用作参考.始终阅读文档.如果文档没有说,请防守代码.

但是,库方法的编程方式是,当它们不接受a时null,它们会抛出一个异常,告诉你它不是一个有效的参数.


ang*_*son 5

嗯,是。

您可以期望(几乎)所有类都能正确处理空引用。

但是,我认为您“正确”的含义与课程作者的含义不同。

例如,如果您尝试打开文件并传递打开文件null的路径,它不会无提示地失败,它将引发异常。

如果那是“正确处理”的意思,那么可以肯定。实际上,我希望所有类都能正确处理空引用。

但是不要指望该程序会像什么都没发生一样陷入困境。