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.
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) –
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). –
Verwenden Sie String.IndexOf anstelle von InStr, es ist nicht abhängig von Option Compare –