C# Console.WriteLine正确处理空字符串
只要找到C# Console.WriteLine正确处理空字符串,c#,.net,console-application,C#,.net,Console Application,只要找到Console.WriteLine就可以正确处理null字符串 比如Console.WriteLine((字符串)null) 我可以假设大多数类库正确地处理空引用吗 否。 这完全取决于您调用的方法。请参阅每个方法的MSDN文档,了解传递null时的预期内容 在调用其他人的API或库时,假设null是不安全的,尤其是当您没有它的源代码作为参考时。始终阅读文档。如果医生没有说,那就编写防御代码 但是,库方法的编程方式是,当它们不接受null时,它们将抛出异常,告诉您它不是有效参数。这完全取决
Console.WriteLine
就可以正确处理null
字符串
比如Console.WriteLine((字符串)null)
我可以假设大多数类库正确地处理空引用吗 否。
这完全取决于您调用的方法。请参阅每个方法的MSDN文档,了解传递null
时的预期内容
在调用其他人的API或库时,假设null
是不安全的,尤其是当您没有它的源代码作为参考时。始终阅读文档。如果医生没有说,那就编写防御代码
但是,库方法的编程方式是,当它们不接受null时,它们将抛出异常,告诉您它不是有效参数。这完全取决于您所说的“正确”和方法本身。除非您的意思是“可能会抛出异常,因为它需要一个实际的字符串”,否则不会。。。对 您可以期望(几乎)所有类都能正确处理空引用 然而,我觉得你所说的“正确”和这个类的作者的意思是不一样的 例如,如果您尝试打开一个文件并传递
null
以获取要打开的文件的路径,它不会自动失败,而是会引发异常
如果这就是你所说的“正确处理”的意思,那当然。事实上,我希望所有类都能正确处理空引用
但不要期望程序像什么都没发生一样继续运行。一般来说,当需要参数(不管是字符串还是其他类型)执行某些操作时,当该参数为null时,该方法通常会异常崩溃 几个例子:
所以就像这里的其他人所说的,这取决于您尝试使用什么方法,并且在尝试传递空值之前最好先阅读。对。在调用其他人的API或库时,假设null是不安全的,尤其是当您没有它的源代码作为参考时。始终阅读文档。“如果医生没有说,那就编写防御代码。”迈克·克拉克——没错。感谢添加,更新了答案。顺便说一句,在您描述的情况下,正确处理null意味着什么?写“空”或“”?很好,三个答案,是,不是,还有可能。:)@jb-祝最佳男主角获胜:)。如果你想将“null”显示为字符串,你可以使用
string test=null??“空”代码>。