2012-04-04 14 views
0

Kann man zur Fehlerbehebung den Wert Option Compare zur Laufzeit abrufen?Wie bekomme ich den Wert für 'Option Compare' zur Laufzeit?

(Ich arbeite an einer Legacy-Windows Forms Anwendung, die InStr mit dem ersten Parameter verwendet als String (Drei-Parameter-Version von Instr), ohne den dritten Parameter, der dann durch Option Compare bestimmt wird. Option Compare Text macht angeblich InStr Groß- und Kleinschreibung ; der Standardwert ist Option Compare Binary.)

+2

Eine Reihe von Vergleichen durchführen, deren Ergebnisse unterscheiden, welche Vergleichsoption gesetzt ist? Ich bin immer noch nicht sicher, ob ich sehe, warum dies zur Laufzeit bestimmt werden muss (und wie diese Informationen verwendet werden) –

+0

Ich möchte den Wert positiv schätzen, ohne auf Code- oder Projekteinstellungen zu achten oder zusätzlichen Code zu schreiben was möglicherweise nicht möglich ist (z. B. beim Debuggen einer .NET-Assembly (DLL-Datei, die von der Hauptanwendung verwendet wird), für die nur die PDB-Datei zum Debuggen verfügbar ist). –

+1

Verwenden Sie String.IndexOf anstelle von InStr, es ist nicht abhängig von Option Compare –

Antwort

5

Die Optionseinstellung ist nur zur Kompilierzeit bekannt. Der Compiler behandelt dies mit dem OptionCompareAttribute-Attribut. Wenn es in einem optionalen Parameter vorhanden ist, ersetzt es die Optionseinstellung. Was diese Funktion inspiriert:

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

Dies funktioniert jedoch aus unerfindlichen Gründen nicht. Punt das Problem, nehmen Sie einfach die Vorteile des Unterschiedes zwischen den Methoden zu vergleichen:

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

passen Sie diese Option vergleichen kann eine pro-Quelldatei Einstellung, diese Funktion kann nur funktionieren, wenn Sie auf dem Visual Studio Standard verlassen. Das ist ein bisschen zweifelhaft. Nun, ziemlich zweifelhaft. Nun, es ist schlecht. Vermeiden Sie es, die Einstellung kennen zu müssen.

Verwandte Themen