VB は本当に大文字と小文字を区別しないのでしょうか? 質問する

VB は本当に大文字と小文字を区別しないのでしょうか? 質問する

ここで議論を始めようとしているわけではありませんが、何らかの理由で、Visual Basic は大文字と小文字を区別せず、C 言語は区別しないとよく言われます (そして、どういうわけかそれは良いことです)。

しかし、ここで疑問があります。Visual Basic では、どこで大文字と小文字が区別されないのでしょうか? 入力すると...

Dim ss As String
Dim SS As String

...にビジュアルスタジオ2008またはビジュアルスタジオ2010IDE、2番目には「ローカル変数はSS現在のブロックで既に宣言されていますVBA VBE では、すぐにエラーが発生するのではなく、大文字と小文字が自動修正されます。

Visual Basic では大文字と小文字が区別されないという議論について、私が何かを見逃しているのでしょうか? (また、ご存知の場合、または回答していただける場合は、なぜそれが悪いことなのでしょうか?)

なぜ私はこの質問をしているのでしょうか?

私は何年もの間、趣味として、あるいはワークグループ内の小規模なビジネス関連のプログラムのために、Visual Basic のさまざまな方言を使ってきました。ここ 6 か月ほど、予想していたよりもはるかに大きなプロジェクトに取り組んでいます。出回っているサンプル ソース コードの多くは C# です。C# を習得したいという強い思いはありませんが、Visual Basic にはない C# の機能 (その逆は VB.NET の機能) を見逃しているとしたら、それは次の点です。XMLリテラル) の場合、その機能についてもっと知りたいです。この場合、C 言語は大文字と小文字を区別するので良いが、Visual Basic は大文字と小文字を区別しないので悪いとよく言われます。知りたいのは...

  1. コード エディターのすべての例では、望むと望まざるとにかかわらず、大文字と小文字が区別される (つまり、大文字と小文字が修正される) のですが、Visual Basic ではどの程度大文字と小文字が区別されないのでしょうか。
  2. VB.NET の場合、コードで実行できることが何らかの形で制限される場合、C# への移行を検討するほど説得力があるでしょうか?

ベストアンサー1

VBAとの違いVB.NETこれは、VB.NET がバックグラウンドで継続的にコンパイルされるためです。VBA をコンパイルするとエラーが発生します。

のようにジョナサンは言うプログラミングの際、文字列比較、XML、およびその他のいくつかの状況を除いて、VB.NET は大文字と小文字を区別しないものと考えることができます...

内部の仕組みに興味があると思います。.NET共通言語ランタイムは大文字と小文字を区別VB.NET コードはランタイムに依存しているため、変数やメソッドを検索するときなど、実行時に大文字と小文字を区別する必要があることがわかります。

VB.NETコンパイラとエディタではそれを無視できます。ケースを訂正するコード内で。

動的機能や遅延バインディング (Option Strict Off) を試してみると、基盤となるランタイムが大文字と小文字を区別していることがわかります。これを確認するもう 1 つの方法は、C# などの大文字と小文字を区別する言語が同じランタイムを使用していることを認識することです。つまり、ランタイムは明らかに大文字と小文字の区別をサポートしています。

編集IDEを使わずに済ませたい場合は、コマンドラインからコンパイルする. コードを編集するメモ帳つまりssSSコンパイラが何を行うかを確認できるのです。

編集引用元ジェフリー・リクターの中に.NET Framework 設計ガイドライン45ページ。

誤解のないように言うと、CLR は実際には大文字と小文字を区別します。Visual Basic などの一部のプログラミング言語では、大文字と小文字は区別されません。Visual Basic コンパイラが C# などの大文字と小文字を区別する言語で定義された型へのメソッド呼び出しを解決しようとすると、コンパイラ (CLR ではありません) がメソッド名の実際の大文字と小文字を判断し、それをメタデータに埋め込みます。CLR はこれについて何も知りません。リフレクションを使用してメソッドにバインドする場合、リフレクション API は大文字と小文字を区別しない検索を行う機能を提供します。これが、CLR が大文字と小文字を区別しない機能を提供する範囲です。

おすすめ記事