2012-04-04 7 views
0

デバッグの目的で、実行時にOption Compareの値を取得することは可能ですか?実行時に「Option Compare」の値を取得するにはどうすればよいですか?

は、(I次いでOption Compareによって決定される第三のパラメータを指定せずに、Stringように、第1パラメータでInStrを使用するレガシーWindows Formsアプリケーション(INSTRの3パラメータバージョン)に取り組んでいます。Option Compare TextおそらくInStr関数は、大文字と小文字を区別しないことができます;デフォルトはOption Compare Binaryです)。

+2

結果がどの比較オプションが設定されているかを区別する一連の比較を実行しますか?私はまだ実行時に決定する必要があるのか​​どうかは分かりません(この情報がどのように使われるかはわかりません) –

+0

コードやプロジェクト設定の検査や余分なコードの作成に頼ることなく、値が何であるかを積極的に知りたいこれは可能ではない可能性があります(たとえば、PDBファイルのみがデバッグで使用できる.NETアセンブリ(メインアプリケーションが使用しているDLLファイル)をデバッグする場合)。 –

+1

InStrの代わりにString.IndexOfを使用すると、Option Compareに依存しません –

答えて

5

オプション設定はコンパイル時にのみ認識されます。コンパイラはこれをOptionCompareAttribute属性で処理します。オプションのパラメータに指定すると、オプションの設定が代入されます。これは、この機能を刺激する:

Function GetOptionCompare(<CompilerServices.OptionCompare()> _ 
          Optional ByVal Compare As CompareMethod = CompareMethod.Binary) As CompareMethod 
    Return Compare 
End Function 

しかし、これは推測できない理由では機能しません。問題をパント、単純に比較する方法との違いを活用する:

Function GetOptionCompare() As CompareMethod 
    Return IIf("A" = "a", CompareMethod.Text, CompareMethod.Binary) 
End Function 

あなたは、Visual Studioのデフォルトに依存しているとき、この機能はのみ動作することができますごとのソースファイルの設定することができ比較そのオプションを用心ください。それはちょっとです。まあ、かわいそう。まあ、悪いです。設定を知る必要はありません。

関連する問題