2013-10-22 10 views
5

Quando decompilo il metodo String.IndexOf (String), vedo questo;Qual è la proprietà String.LegacyMode esattamente?

[__DynamicallyInvokable] 
public int IndexOf(string value) 
{ 
    return this.IndexOf(value, string.LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture); 
} 

Nella seconda definizione del parametro:

  • se string.LegacyMode è true, StringComparison.Ordinal viene valutata.
  • se viene valutato string.LegacyModefalse, StringComparison.CurrentCulture.

Ma cosa significa esattamente String.LegacyMode?

Quando ho decompilare questa proprietà vedo questo:

internal static bool LegacyMode 
{ 
    get 
    { 
    return CompatibilitySwitches.IsAppEarlierThanSilverlight4; 
    } 
} 

Ho cercato su String.LegacyMode e CompatibilitySwitches.IsAppEarlierThanSilverlight4 su Google prima, ma non sono riuscito a trovare tutte le informazioni utili.

Mi puoi illuminare?

+1

@Downvoter cura di commentare almeno? –

risposta

5

Perché non verificare la fonte, MSDN :)

Ninja edit: Ho appena visto il link che hai postato in cima alla tua domanda. Seleziona Silverlight dal menu a discesa altre versioni e vedrai la nota sotto.

String.IndexOf Method

Note per i chiamanti

partire in Silverlight 4, il comportamento del metodo String.IndexOf (String) è cambiato. In Silverlight 4, esegue un confronto sensibile al maiuscolo e al minuscolo utilizzando la cultura corrente per trovare la prima occorrenza di valore. Ciò è conforme al comportamento del metodo String.IndexOf (String) in .NET Framework completo. In Silverlight 2 e Silverlight 3, String.IndexOf (String) esegue un confronto ordinale. Se il Common Language Runtime determina che un'applicazione Silverlight è stata compilata utilizzando Silverlight 2 o Silverlight 3, esegue un confronto ordinale; in caso contrario, esegue un confronto sensibile alla cultura.

Problemi correlati