使C#区分大小写的原因是什么?
我正在考虑从VB.NET切换到利用一些语言功能(CCR和yield),理解这种差异背后的原因可能会使转换变得更容易.
[更新]三天前,我接受了这次暴跌.学习C#并不是特别难,但我几乎记不起90年代后期的C++日.
Case Sensitivity令我烦恼吗?不像我想的那么多......加上我发现它实际上是有利的.我真的很高兴CCR作为异步协调编程模型.如果我在当前项目上有更多时间,我会将代码库移植到C#中以充分利用它.但对我的客户来说不公平.
现在评估我当前的项目,我看到无处不在的阻塞线程!哈啊!
[UPDATE]
好吧,我已经用C#编程近一年了.我真的很喜欢这种语言,我真的很讨厌越过VB(尤其是当它不可避免时!)
区分大小写的事情?甚至不是问题
C#具有敏感性,因为它采用的是C风格的语言,它们都是区分大小写的.这是来自内存这里是一个MSDN链接,这对我来说不起作用我现在无法验证.
我还想指出这是一个非常有效的用例:
public class Child { private Person parent; public Person Parent { get { return parent;} } }
是的,您可以使用成员变量的前缀来解决这个问题,但有些人不喜欢这样做.
他们可能会想"我们不希望人们在一个地方使用SoMeVaRiAbLe而在另一个地方使用sOmEvArIaBlE.
考虑以下伪代码中的变量名称:
class Foo extends Object { ... } ... foo = new Foo();
区分大小写允许使用大小写来分隔类名和实例的约定; 这些公约在发展中并不罕见.
我认为案件可以传达信息的事实是一个很好的理由.例如,按照惯例,类名,公共方法和属性按惯例以大写字母开头.相反,字段和局部变量以小写字母开头.
使用该语言多年后,我真的很喜欢这个,当你只需从单词的大写中读取信息时,代码就更容易阅读.
这就是为什么人们有时会这样做,这是有道理的:
Foo foo = new Foo();
我一直这样做,非常有用.如果你在一个更有用的情况下考虑这样:
Image image = Image.LoadFrom(path);
有时候将实例称为与类名称相同的东西是有道理的,并且区分它们的唯一方法就是外壳.在C++中,区分大小写变得更加有用,但这是另一个故事.如果你有兴趣,我可以详细说明.