Czy porównania ciągów naprawdę różnią się w zależności od kultury, gdy ciąg nie gwarantuje zmiany?
Czytam zaszyfrowane referencje / ciągi połączeń z pliku konfiguracyjnego. Resharper mówi mi, że „String.IndexOf (string) jest tutaj specyficzny dla kultury” w tej linii:
if (line.Contains("host=")) {
_host = line.Substring(line.IndexOf(
"host=") + "host=".Length, line.Length - "host=".Length);
... i chce go zmienić na:
if (line.Contains("host=")) {
_host = line.Substring(line.IndexOf("host=", System.StringComparison.Ordinal) + "host=".Length, line.Length - "host=".Length);
Wartość, którą czytam, będzie zawsze „host =” niezależnie od tego, gdzie aplikacja może zostać wdrożona. Czy naprawdę warto dodać ten bit „System.StringComparison.Ordinal”?
Co ważniejsze, czy może to zaszkodzić (użyć go)?