【发布时间】:2012-12-29 12:58:38
【问题描述】:
在我可以安全地应用 ToUpper()、StartWith() 等方法之前,测试我所有的字符串是否为 null 非常烦人...
如果string 的默认值是空字符串,我就不必测试了,我会觉得它与int 或double 等其他值类型更一致。
另外Nullable<String> 会有意义。
那么为什么C#的设计者选择使用null作为字符串的默认值呢?
注意:这与this question 相关,但更侧重于为什么而不是如何处理它。
【问题讨论】:
-
您认为这是 other 引用类型的问题吗?
-
@JonSkeet 不,只是因为我最初错误地认为字符串是值类型。
-
@Marcel:这是思考这个问题的一个很好的理由。
-
@JonSkeet 是的。哦是的。 (但您对不可空引用类型的讨论并不陌生……)
-
@JohnCastle 我敢问你了解三元状态价值的数据库开发人员是否可以从他们那里获取空值。它不好的原因是因为人们不认为是三位一体的,它是左或右,上或下,是或否。关系代数需要三元状态。
标签: c# string default-value