Why do people like case sensitivity? [closed]

2019-09-03 04:05发布

只是不知道为什么人们喜欢在编程语言区分大小写? 我并不想只是好奇,多数民众赞成启动一个火焰战争。
个人而言,我从来没有真正喜欢它,因为我觉得我的工作效率下降时,曾经我也试过有区分大小写语言,你要知道,我慢慢升温/习惯了,现在我使用C#和F#很多更然后我曾经。

那么,为什么你喜欢吗?

干杯

Answer 1:

一致性。 代码是比较困难的,如果“富”,“富”,“富”和“富”被认为是相同的阅读。

有些人会写的一切全部大写,让一切的可读性。

区分大小写很容易以不同的方式使用“同名”,根据资本惯例,例如,

Foo foo = ...  // "Foo" is a type, "foo" is a variable with that type


Answer 2:

VB.NET的一个优点是,虽然它不区分大小写,IDE会自动重新格式一切的标识符“官方”的情况下,你使用的 - 所以很容易一致,便于阅读。

缺点是,我讨厌VB风格的语法,而更喜欢C风格的操作符,标点和语法。

在C#中,我觉得我一直在按Ctrl-空间来保存不必使用正确的类型。

仅仅因为你能说出事情只有大小写不同,并不意味着它是一个好主意,因为它会导致误解,如果大量的泄漏出更大的范围,所以我建议在应用或于子系统的敬而远之吧水平,但允许其仅在内部的函数或方法或类。



Answer 3:

区分大小写不强制编码风格或一致性。 如果您帕斯卡情况下恒定的,编译器不会抱怨。 它只会迫使你给它的每一次使用它的时候使用Pascal大小写类型。 我个人觉得刺激必须尝试两个项目仅在不同的情况下区分。 这是很容易的代码短块做,但很难在代码的一个非常大的块保持挺直。 还要注意,只有人的方式可以实际使用的情况下,灵敏度而不去坚果如果他们都严格遵循相同的命名约定。 它是增加的价值,不区分大小写的命名约定。



Answer 4:

我维护我公司内部编译器,并且忍不住要使它成为一个混合体 - 你可以使用任何你想要的情况下进行的标识符,你必须引用它以相同的外壳,但命名的同名别的东西不同的情况下将导致一个错误。

Dim abc = 1
Dim y = Abc - 1 ' error, case doesn't match "abc"
Dim ABC = False ' error, can't redeclare variable "abc"

这是目前不区分大小写的,所以我大概可以解决一些存在的错误,没有人会抱怨太多...



Answer 5:

谁喜欢病例灵敏度很多人误解是什么区分灵敏度意味着。

VB .NET是不区分大小写。 这并不意味着你可以声明为abc,后来将其称为ABC,ABC,ABC和变量。 这意味着,如果你键入任何其他人的,则IDE会自动将其更改为正确的形式。

不区分大小写意味着你可以键入

dim a as string

和VS会自动将其更改为正确的外装

Dim a As String

在实践中,这意味着你几乎从来没有打Shift键,因为你可以键入全部为小写,让IDE正确的为您服务。

但是C#是没有那么糟糕关于这个问题,它曾经是。 智能感知在C#是更加积极比它在VS 2002和2003年,使击键次数下降了不少。



Answer 6:

我相信它强制执行的一致性,提高了代码的可读性,并让你的眼睛更好地解析出件。

class Doohickey {

  public void doSomethingWith(string things) {
     print(things);
  }
}

使用套管约定使得代码显得很标化到任何程序员。 你可以挑选出类,类型,方法很容易。 这将是更难做,如果任何人都可以以任何方式利用它:

Class DOOHICKEY {
  Public Void dosomethingwith(string Things) {
    Print(things);
  }
} 

不是说人会写丑陋的代码,但大部分在路上大小写和标点符号规则,使编写更容易阅读,区分大小写或外壳的标准使代码更易于阅读。



Answer 7:

我相信你明白什么之间区分大小写是什么可读性正确回答这个区别是很重要的。 虽然有不同的外壳策略是有用的,可以说是不区分大小写一种语言中也有他们。

例如FOO可以用于一个变量,如FOO在Java和VB的常数。 还有就是微小的差别是VB将允许您以后Foo类型,但是这主要是可读性的问题,并希望通过某种形式的代码完成固定。

如果你想拥有你的对象的情况下,什么是非常有用的。 如果您使用一致的命名约定它可以变得很容易看到你的对象从何而来。

例如:FooBar的FOOBAR =新FooBar的();

当需要仅一个类型的对象,可读性显著增加,因为它是立即显而易见的物体是什么。 当需要多个实例,你会明显必须选择新的(希望有意义的名称),但在小的代码段这让很多的意义,以小写第一个字符使用类的名称,而不是像myFooBar,X,或系统你会忘记它做什么其他一些任意值。

当然,所有的这方面的问题,然而在这方面,我会说9次了10年不负有心人。



Answer 8:

有很多答案在这里,但我很惊讶没有一个人指出明显的例子,也使得计算器竞争对手的乐趣:

expertSexChange != expertsExchange

当您使用骆驼情况变量名的情况下是非常重要的。



Answer 9:

它为您提供了更多的选择。

钟铃

都是不同的。

此外,它的驱动器是被刚刚聘请了坚果试图找出为什么总计不出来右边的新手; O)))



Answer 10:

因为现在你确实有一个一致的方式输入的一切。 然后事情突然开始变得有意义。

如果你有一个好的编辑器 - 一个由另一名拥有智能感知或同样的事情 - 你应该没有搞清楚区分大小写namees任何问题。



Answer 11:

区分大小写是疯狂! 什么样的疯狂的编码器将使用名为foo,FOO,FOO,和Foo都在同一个范围内的变量? 你永远也不会相信我说,有是区分大小写的理由!



Answer 12:

我觉得也有心理这里涉及的问题。 我们是程序员,我们之间的事情细微区别。 “A”是不一样的ASCII值“A”,当我的编译器将认为他们同样的我会觉得奇怪。 这就是为什么,当我输入

(列表 'A' B“C)

在LISP(在REPL),并将其与响应

(ABC)

我的脑海里顿时惊呼“这不是我说的!”。 当事情是不一样的,他们不同的,必须考虑这样...



Answer 13:

我通常会花一些时间与Delphi程序休假,和其他大部分时间我只用C ++和MASM。 还有一两件事很奇怪:当我在德尔福,我不喜欢区分大小写,但是当我在C ++ - 我做的。 我喜欢大小写,becouse它使类似的话(函数,变量)看起来很相似,我喜欢不区分大小写,因为它没有把过多的限制,在大成。



Answer 14:

从.NET Framework开发人员指南大小写约定 ,案例灵敏度:

资本化的准则单独存在,使标识符更容易阅读和识别。 壳体不能被用作避免库元素之间的名称冲突的一种手段。

不要以为所有的编程语言是区分大小写的。 他们不是。 名称不能被单独情况有所不同。



Answer 15:

它是在代码类型区分有用。

例如在Java中:如果它开始以一个大写字母,那么它可能是一个类。 如果ALL_CAPS它可能是一个常数。

它提供了更多的灵活性。



Answer 16:

感觉就像一个更专业的编码方式。 应该不需要编译器弄清楚你是什么意思。



Answer 17:

我的感受,你一样很长一段时间前,当我用VB3 / 4多很多。 现在我主要是C#的工作。 但是现在我发现IDE的做找到符号,以及对不同的情况下提供良好的智能感知一个伟大的工作。 这也让我在我自己的代码更加灵活,因为我可以有不同的充意义与不同的情况,我现在做了很多项目。



Answer 18:

另外一个好习惯,如果你在Linux下工作,其中引用的文件名是区分大小写的。 我不得不端口的Windows ColdFusion应用程序在Linux下工作,这是一个绝对的噩梦。 也有一些数据库有大小写开启,想象中的喜悦那里。

这是好习惯,但不管是什么平台的,肯定会导致更一致的开发风格。



Answer 19:

恕我直言,这完全习惯的问题。 哪一个你已经习惯了就会显得自然和正确的。

你能想出很多理由的,为什么它是好还是坏,但它们都没有装多少水。 例如:

  • 你得到更多的可能标识符,如。 foo VS Foo VS FOO
  • 但有不同之处仅在个案标识是不是一个好主意
  • 你可以编码类型信息到一个名称(例如, FooBar =类型名, fooBar =函数, foo_bar =变量, FOO_BAR =宏)
  • 但是你可以做,反正有匈牙利命名法


Answer 20:

因为它的自然语言是如何工作的,太。



Answer 21:

在预设电台有东西区分大小写可说的,例如有一个公共属性Foo和相应的私有/受保护字段FOO。 随着智能感知它不是很难不犯错误。

然而在OS,大小写很疯狂。 我真的不希望在同一目录中的文件Foo FOO Foo。 这使我每次小龙虾我在做* nix的东西。



Answer 22:

对我来说,区分大小写只是像thisValue范围为公共财产或函数参数,并ThisValue一出戏。

超过经常需要在不同范围内使用相同的变量名(因为它代表着同样的事情)和大小写帮助你而不诉诸前缀这样做。

噢,至少我们不再使用匈牙利命名法。



Answer 23:

与传统的VBScript ASP代码,当我们搬到.NET我们选择了C#和的主要原因之一工作多年后,区分大小写。 旧的代码是不可读的,因为人们不遵循任何约定:代码是不可读的混乱(好,差的VBScript IDE的帮助上)。

在C#中,我们可以定义命名约定,每个人都必须遵守。 如果有什么不正确的套管,你可以将其重命名(与重构,但是这是一个IDE功能),而且不会出现任何问题,因为类或变量将被命名为所有横跨代码相同的方式。

最后,我认为是更可读,如果一切都正确装箱。 也许是快不区分大小写来写,而是从评审和保持点代码是不是最好的事情,因为通过寻找一些代码跳绳很容易。 例如更容易找到一览无余不是找“富”所有“富”串“富”,“富”,“富” ...



Answer 24:

不区分大小写的语言不容易推广到非ASCII字符集。 除英语之外的语言正确的大小写转换不是一个简单的任务,并且依赖于系统区域设置,等等。



Answer 25:

不区分大小写是非常困难的,除非你限制语法ASCII(或只有不区分大小写适用于ASCII字符),也需要限制的语言环境。

用于确定字符的大写和小写的规则既不明确定义的,也不是无损的。

某些字符可以有不止一个“小写”的形式。 有些人会不同意,以正确的大写形式应该是什么。

(有些语言和环境允许几乎字符的名称使用)

考虑在C#是什么ToUpper的()和ToUpperInvariant()有什么区别?



文章来源: Why do people like case sensitivity? [closed]