14

なぜ人々はプログラミング言語で大文字と小文字を区別するのが好きなのでしょうか? 私は火炎戦争を始めようとしているわけではありません。
個人的には、大文字と小文字を区別する言語を試したときに生産性が低下することがわかったので、あまり好きではありませんでした.C#とF#を多く使用しているので、ゆっくりとウォームアップ/慣れていることを覚えておいてください.以前はよく__していた。

それで、なぜあなたはそれが好きですか?

乾杯

4

25 に答える 25

32

一貫性。「foo」、「Foo」、「fOO」、および「fOo」が同一であると見なされると、コードが読みにくくなります。

一部の人々は、すべてをすべて大文字で書き、すべてを読みにくくします。

大文字と小文字を区別すると、大文字の規則に従って、「同じ名前」をさまざまな方法で簡単に使用できます。

Foo foo = ...  // "Foo" is a type, "foo" is a variable with that type
于 2008-10-03T02:45:22.737 に答える
8

VB.NET の利点は、大文字と小文字は区別されませんが、使用している識別子の「公式」大文字と小文字をすべて IDE が自動的に再フォーマットすることです。そのため、一貫性と読みやすさが容易になります。

短所は、VB スタイルの構文が嫌いで、C スタイルの演算子、句読点、および構文を好むことです。

C# では、適切な型を使用する必要がないように、常に Ctrl-Space を押していることがわかりました。

大文字と小文字のみが異なるものに名前を付けることができるからといって、それが良い考えであるとは限りません。その多くがより大きなスコープに漏れると誤解を招く可能性があるため、アプリケーションまたはサブシステムでそれを避けることをお勧めします-レベルですが、関数、メソッド、またはクラスに対して内部的にのみ許可します。

于 2008-10-03T03:16:21.493 に答える
5

大文字と小文字の区別は、コーディング スタイルや一貫性を強制しません。定数のパスカル ケースを使用しても、コンパイラは文句を言いません。使用するたびに、パスカルケースを使用して入力する必要があります。個人的には、大文字と小文字だけが異なる 2 つの項目を区別しようとするのは面倒です。短いコード ブロックで実行するのは簡単ですが、非常に大きなコード ブロックでまっすぐに保つのは非常に困難です。また、大文字と小文字を区別せずに実際に使用できる唯一の方法は、全員が同じ命名規則に厳密に従うことです。大文字と小文字の区別ではなく、値を追加したのは命名規則です。

于 2008-10-03T03:11:18.183 に答える
3

私は自分の会社の内部コンパイラを維持しており、それをハイブリッドにしたいと考えています。識別子には大文字と小文字をどのように使用してもかまいません。また、同じ大文字小文字で参照する必要がありますが、同じ名前で別のものに名前を付ける必要があります。大文字と小文字が異なるとエラーが発生します。

Dim abc = 1
Dim y = Abc - 1 ' エラー、大文字と小文字が一致しません "abc"
Dim ABC = False ' エラー、変数「abc」を再宣言できません

現在、大文字と小文字が区別されないため、既存のいくつかのエラーをおそらく修正でき、誰も文句を言わないでしょう...

于 2008-10-03T03:47:04.930 に答える
3

大文字と小文字の区別が好きな多くの人は、大文字小文字の区別が何を意味するのかを誤解しています。

VB .NET は大文字と小文字を区別しません。これは、変数を abc として宣言し、後でそれを ABC、Abc、および aBc として参照できるという意味ではありません。これは、他のいずれかのように入力すると、IDE が自動的に正しい形式に変更することを意味します。

大文字と小文字を区別しないということは、入力できることを意味します

dim a as string

VSは自動的に正しいケースに変更します

Dim a As String

実際には、すべて小文字で入力して IDE に修正させることができるため、Shift キーを押す必要はほとんどありません。

しかし、C# は以前ほど悪くはありません。C# の Intellisense は、VS 2002 および 2003 よりもはるかに積極的であるため、キーストローク数がかなり減少します。

于 2008-10-03T04:28:12.243 に答える
3

ここにはたくさんの答えがありますが、スタックオーバーフローの競合他社をからかう明白な例を誰も指摘していないことに驚いています。

expertSexChange != expertsExchange

キャメル ケースの変数名を使用する場合、大文字と小文字は非常に重要です。

于 2011-01-13T18:55:05.427 に答える
2

一貫性が強化され、コードの可読性が向上し、目が断片をよりよく解析できるようになると思います。

class Doohickey {

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

大文字と小文字の規則を使用すると、そのコードはどのプログラマーにも非常に標準化されたように見えます。クラス、タイプ、メソッドを簡単に選択できます。誰かが何らかの方法でそれを大文字にすることができれば、それははるかに難しいでしょう:

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

人々が醜いコードを書くと言うわけではありませんが、大文字と句読点のル​​ールが文章を読みやすくするのと同じように、大文字と小文字の区別や大文字と小文字の標準がコードを読みやすくします。

于 2008-10-03T02:55:54.803 に答える
2

これに適切に答えるには、大文字と小文字の区別と読みやすさの違いを理解することが重要だと思います。大文字と小文字を区別しない戦略を使用すると便利ですが、大文字と小文字を区別しない言語内でそれらを使用できます。

たとえば、java と VB の両方で、foo を変数に使用し、FOO を定数として使用できます。VB では後で fOo と入力できるようになるという小さな違いがありますが、これは主に読みやすさの問題であり、何らかの形式のコード補完によって修正されることを願っています。

非常に便利なのは、オブジェクトのインスタンスが必要な場合です。一貫した命名規則を使用すると、オブジェクトの由来を非常に簡単に確認できます。

例: FooBar fooBar = new FooBar();

必要なタイプのオブジェクトが 1 つだけの場合、そのオブジェクトが何であるかがすぐにわかるため、読みやすさが大幅に向上します。複数のインスタンスが必要な場合は、明らかに新しい (できれば意味のある名前) を選択する必要がありますが、小さなコード セクションでは、myFooBar、x、または myFooBar、x、またはそれが何をするか忘れてしまう他の任意の値。

もちろん、これはすべて文脈の問題ですが、この文脈では、10回のうち9回はうまくいくと思います.

于 2008-10-03T03:54:36.287 に答える
1

より多くのオプションを提供します。

ベルベルBEll

はすべて異なります。

その上、それは、合計が正しく出ていない理由を見つけようとして、ちょうど雇われたばかりの初心者を駆り立てます ;o)))

于 2008-10-03T02:41:51.640 に答える
1

なぜなら、実際にはすべてを一貫した方法で入力する必要があるからです。そして、物事は突然意味を成し始めます。

IntelliSense または別の名前で同じものを備えた適切なエディターを使用している場合は、大文字と小文字を区別する名前を理解するのに問題はないはずです。

于 2008-10-03T02:46:20.880 に答える
1

.NET Framework Developer's Guide Capitalization Conventionsから、大文字と小文字の区別:

大文字と小文字のガイドラインは、識別子を読みやすく、認識しやすくするためだけに存在します。ライブラリ要素間の名前の衝突を回避する手段として、大文字と小文字を区別することはできません。

すべてのプログラミング言語で大文字と小文字が区別されるとは限りません。ではない。大文字と小文字だけで名前を区別することはできません。

于 2009-02-14T18:35:00.857 に答える
1

大文字と小文字の区別は狂気です! foo、foO、fOo、および fOO という名前の変数をすべて同じスコープで使用する狂気のコーダーは何ですか? 大文字と小文字を区別する理由があると私に納得させることはできません!

于 2008-10-03T03:25:19.460 に答える
1

私は通常、休暇中に Delphi プログラミングに時間を費やし、それ以外のほとんどの時間は C++ と MASM のみを使用します。Delphi を使用しているときは、大文字と小文字を区別するのが好きではありませんが、C++ を使用しているときは、大文字と小文字を区別します。大文字と小文字を区別すると、似たような単語 (関数、変数) が似たように見えるため、大文字と小文字を区別しないことが好きです。構文に過度の制限を課さないためです。

于 2008-10-08T17:26:19.117 に答える
1

ここにも心理学の問題があると思います。私たちはプログラマーであり、物事を細かく区別します。aは と同じ ASCII 値ではなく、Aコンパイラがそれらを同じと見なすと奇妙に感じるでしょう。これが、私がタイプするときの理由です

(list 'a 'b 'c) 

LISP で (REPL で)、次のように応答します。

(A B C)

私の心はすぐに「それは私が言ったことではない! 」と叫びます。'。物事が同じでない場合、それら異なっており、そう考えなければなりません。

于 2008-10-03T04:15:48.467 に答える
0

プログラミングでは、大文字と小文字を区別する必要があります。たとえば、パブリック プロパティ Foo と、それに対応するプライベート/保護フィールド foo があります。IntelliSense を使用すると、間違いを犯さないようにすることはそれほど難しくありません。

ただし、OS では、大文字と小文字の区別はクレイジーです。ファイル FooとfoofOO を同じディレクトリに置きたくありません。これは、私が* nixのことをしているたびに私を怒らせます.

于 2008-10-03T10:20:41.500 に答える
0

従来の VBScript ASP コードを長年使用した後、.NET に移行したときに C# を選択しました。主な理由の 1 つは大文字と小文字の区別でした。慣例に従わなかったために、古いコードは読めませんでした。

C# では命名規則を定義でき、誰もがそれに従う必要があります。何かが正しく大文字と小文字が区別されていない場合は、名前を変更できます (リファクタリングを使用しますが、これは IDE の機能です)。クラスまたは変数はコード全体で同じ方法で名前が付けられるため、問題はありません。

最後に、すべてが正しくケース分けされていれば、はるかに読みやすいと思います。大文字と小文字を区別せずに書く方が速いかもしれませんが、コードのレビューと保守の観点からすると、何かを探してコードをスキップする方が簡単なので、最善の方法ではありません。たとえば、 、 、 、 ... を探すよりも、すべての文字列を一目で見つける方が簡単ですfoofooFooFOOFOo

于 2009-11-17T09:35:12.043 に答える
0

私にとって、大文字と小文字の区別は、引数の thisValue やパブリック プロパティまたは関数の ThisValue のようなスコープでの遊びです。

多くの場合、異なるスコープで同じ変数名 (同じものを表すため) を使用する必要がありますが、大文字と小文字を区別すると、プレフィックスに頼らずにこれを行うことができます。

少なくとも、ハンガリー語表記を使用しなくなりました。

于 2008-10-03T10:46:11.450 に答える
0

コード内の型を区別するのに役立ちます。

Java の例: 大文字で始まる場合は、おそらくクラスです。ALL_CAPS の場合、おそらく定数です。

より汎用性が高くなります。

于 2008-10-03T02:43:49.480 に答える
0

より専門的なコーディング方法のように感じます。あなたの意図を理解するためにコンパイラは必要ありません。

于 2008-10-03T02:45:14.720 に答える
0

私もVB3/4を多用していた頃、あなたと同じように感じていました。現在は主に C# を使用しています。しかし今では、IDE がシンボルを見つけて、さまざまなケースで優れたインテリセンスを提供するという素晴らしい仕事をしていることがわかりました。また、ケースが異なるアイテムに異なる意味を持たせることができるため、自分のコードの柔軟性が向上します。これは、現在よく行っていることです。

于 2008-10-03T02:47:30.673 に答える
0

私見、それは完全に習慣の問題です。あなたが慣れているものはどれでも、自然で正しいように見えます.

なぜそれが良いか悪いかについて多くの正当化を考え出すことができますが、どれも多くの水を保持していません. 例えば:

  • より多くの可能な識別子を取得します。fooFooFOO
  • ただし、大文字と小文字のみが異なる識別子を持つことはお勧めできません
  • 型情報を名前にエンコードできます (例: FooBar=typename、fooBar=function、foo_bar=variable、FOO_BAR=macro)
  • しかし、ハンガリーの表記法でとにかくそれを行うことができます
于 2008-10-03T02:47:44.963 に答える
0

大文字と小文字を区別しないことは、構文を ascii に制限する (または大文字と小文字を区別しないことを ASCII 文字にのみ適用する) 場合と、ロケールを制限する必要がない限り、非常に困難です。

文字の大文字と小文字を決定する規則は明確に定義されておらず、ロスレスでもありません。

一部の文字は、複数の「小文字」形式を持つことができます。正しい大文字の形式がどうあるべきかについて意見が分かれる人もいます。

(一部の言語や環境では、ほとんどの文字を名前に使用できます)

C# では、 ToUpper () と ToUpperInvariant() の違いは何ですか?

于 2012-01-18T07:47:19.163 に答える
0

また、ファイル名の参照で大文字と小文字が区別される Linux で作業している場合にも、良い習慣です。Linux で動作するように Windows ColdFusion アプリケーションを移植する必要がありましたが、それはまったくの悪夢でした。また、一部のデータベースでは大文字と小文字の区別がオンになっています。その喜びを想像してみてください。

プラットフォームに関係なく、これは良い習慣であり、より一貫した開発スタイルにつながることは間違いありません。

于 2008-10-03T02:52:44.950 に答える
0

大文字と小文字を区別しない言語は、ASCII 以外の文字セットに簡単に一般化できません。英語以外の言語の適切な大文字と小文字の変換は簡単な作業ではなく、とりわけシステム ロケールに依存します。

于 2011-01-13T20:03:33.843 に答える
0

自然言語も同じように機能するからです。

于 2008-10-03T04:31:49.270 に答える