在 Visual Studio 2015 中工作,我对以下效果进行了条件检查:
if(String.IsNullOrWhiteSpace(stringToTest))
我看到了一个 IDE001快速提示或行动 https://msdn.microsoft.com/en-us/library/dn872466.aspx建议“名称可以简化”并建议更正:
if(string.IsNullOrWhiteSpace(stringToTest))
唯一的区别是使用string
代替String
.
MSDN 示例 https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace%28v=vs.110%29.aspx使用大写 S 与String
, and 这个答案 https://stackoverflow.com/a/7077/1345223澄清“string
是 C# 中的别名System.String
。所以从技术上来说,没有什么区别。”
需要明确的是,我的问题依赖于其中的答案字符串与字符串 https://stackoverflow.com/q/7074/1345223,但我有一个与那里提出的问题不同的问题。
另外相关的还有这个问题 https://stackoverflow.com/q/32187486/1345223,尽管那里的答案并没有真正解决问题。这个特定问题与我的非常相似,但它被标记为重复另一个SO问题 https://stackoverflow.com/q/7074/1345223我注意到。和有一条评论 https://stackoverflow.com/questions/32187486/why-is-string-considered-a-simplified-version-of-string#comment52260684_32187503OP 表示这是 2015 年才出现的全新行为。
我的问题
我的问题是,如果两个变量类型相等,并且 MS 示例使用大写版本,为什么我看到使用小写版本的快速操作?.NET 4.6 框架和 VS2015 是否进行了更改以鼓励使用小写版本?我似乎不应该看到这种类型的提示。
好吧,正如比我聪明的人所指出的那样,编译级别实际上没有区别,并且像您一样(以及您将看到的 JohnyL ;),我也认为这是一个错误,并找到了导致我回答的原因:
为什么我看到使用小写版本的快速操作?
取自this https://connect.microsoft.com/VisualStudio/feedback/details/1302291/ide-claims-that-changing-string-to-string-is-simplification-c-vs-2015-rc内容丰富(且有趣)的错误讨论,以下是此功能的要点:
- 它不仅更改了字母大小写,还替换了
String
键入名称string
关键词。两者仅在大小写上有所不同,这一事实纯属巧合。存在字符数不同的情况(Int32 -> int
)或者名称完全不同(Single -> float
).
- 小写字母名称更容易输入。
- 对于真正喜欢一致格式的人
string
在代码中(它可能取决于您编码所用的其他语言及其约定),此功能有助于更改现有源代码以保持一致。
-
string
也是一个具有明确含义的关键字,而String
根据上下文的不同,其含义可能会有所不同。
.NET 4.6 框架和 VS2015 是否进行了更改以鼓励使用小写版本?
据我所读,没有。
顺便说一句,您可以在“工具”>“选项”>“文本编辑器”>“C#”>“代码样式”-> 取消选中“在成员访问表达式中首选内部预定义类型关键字”中更改此行为以适合您的偏好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)