1

オブジェクトが Comparator および Comparable インターフェイスを実装してから、compare および compareto をオーバーライドできることを .NET で知っています。

Option Compare はこれにどのように適合しますか? Option Compare を使用すると、テキスト メソッドまたはバイナリ メソッドを使用して文字列を比較できることを知っています。これらは Comparator の異なる実装ですか?

4

2 に答える 2

3

Option Compare Textオリジナルの非.NETVBから来ています。これは、VBxユーザーの互換性や利便性のためにありますが、必要なときに比較機能を提供できる.NETFrameworkパラダイムには実際には属していません。

これは、演算子=、、を適用したり、型の変数やリテラルに適用したりするなど、コードで行われる直接の文字列比較にのみ影響します。Comparableインターフェースをオーバーライドすることはなく、クラスにはとにかく何もありません。<><>StringString

私は個人的にパラダイムを混ぜないことを好みます、そしてそれ自体は全く使用Option Compare Textしません。大文字と小文字を区別しない比較が必要な場合はを使用String.Compare(s1, s2, True)し、大文字と小文字を区別しない比較子を関数に提供する必要がある場合は、を渡しStringComparer.CurrentCultureIgnoreCaseます。

于 2012-08-20T07:20:20.730 に答える
0

http://msdn.microsoft.com/en-us/library/t0k7484c(v=vs.100).aspxを参照してください。

Option(Explicit|Strict|Compare|Infer) は、VB.NET コードを実行可能ファイルに変換するときにどのフラグを設定するかをコンパイラに知らせるためのものです (それらは、コードで実行しようとしていることをコンパイラがどのように解釈するかを決定します。たとえば、Option Compare はテキストを切り替えます)。 (大文字と小文字を区別しない) または文字列操作のバイナリ (大文字と小文字を区別する) 比較)。これらは .NET Framework の構造とは関係なく、VB.NET コードが C# や F# などの他の .NET 言語によってどのように解釈されるかを定義します。

于 2012-08-20T07:11:27.003 に答える