【发布时间】:2010-12-13 23:47:07
【问题描述】:
大多数时候我想进行字符串比较,我希望它们不区分大小写。
那么为什么.net中的字符串默认区分大小写呢?
编辑 1: 为了清楚起见,我认为下面的内容应该默认返回 true。或者至少允许我有一个编译时标志来做到这一点。
"John Smith" == "JOHN SMITH"
编辑 2:我可以想到更多不区分大小写的示例
不区分大小写的示例
- 用户名
- 网址
- 文件扩展名/文件名/目录名/路径
- 机器/服务器名称
- 州/国家/地区/地点等
- 名字/姓氏/缩写
- 指南
- 月/日名称
应区分大小写的示例
- 密码
【问题讨论】:
-
@bryan。你是对的,这是我的经验。虽然与金钱相比并不准确
-
+1 关闭。与开始诚实的调查相比,表达对决定的不同意见似乎更有趣。
-
URI 不区分大小写,只有域和方案部分。 GUID 可能应该作为 GUID 而不是字符串进行比较,这也是一个有争议的问题。
-
@Simon:说
"John Smith" == "JOHN SMITH"应该返回true表示你不同意。你愿意使用 IL weaving 来颠覆语言决策,这表明了一种不屑。问题的这些属性往往会导致主观和争论的答案。我知道您在问为什么做出这个决定,但您的方法很重您的意见。 -
@tekiegreg:它给用户带来的烦恼多于安全性。至少在迄今为止我见过的任何真实系统中。他是对的,对于用户来说,几乎没有什么东西应该强制区分大小写。但对于通用编程语言,我想这是一条错误的路。
标签: .net string case-sensitive case-insensitive