Questa domanda si applica ai dispositivi C#, .net Compact Framework 2 e Windows CE 5.C# string.IndexOf() restituisce il valore imprevisto
Ho riscontrato un errore in una DLL .net che era in uso su dispositivi CE diversi per anni, senza mostrare alcun problema. Improvvisamente, su un nuovo dispositivo Windows CE 5.0, questo bug è apparso nel codice seguente:
string s = "Print revenue receipt"; // has only single space chars
int i = s.IndexOf(" "); // two space chars
mi aspetto che per essere -1, tuttavia questo è stato vero solo fino ad oggi, quando indexOf improvvisamente restituito 5.
Dal momento che questo comportamento non si verifica quando si utilizza
int i = s.IndexOf(" ", StringComparison.Ordinal);
, sono abbastanza sicuro che questo è un phenomenom basato cultura, ma non riesco a riconoscere la differenza questo nuovo dispositivo fa. È una versione per lo più identica di un dispositivo conosciuto (solo una CPU più veloce e una nuova scheda).
Entrambi i dispositivi:
- run Windows CE 5.0 con localizzazione identico
- System.Environment.Version rapporti '2.0.7045.0'
- CultureInfo.CurrentUICulture e la relazione CultureInfo.CurrentCulture 'it-IT' (anche testato con 'de-DE')
- "tutte" le chiavi di registro correlate sono uguali.
Il nuovo dispositivo ha preinstallato il CF 3.5, i cui file GAC ho rinominato sperimentalmente, senza modifiche nel comportamento descritto. Poiché a runtime viene sempre riportata la versione 2.0.7045.0, presumo che questi assembly non abbiano alcun effetto.
Anche se questo non è difficile da risolvere, non posso sopportarlo quando le cose sembrano così magiche. Qualche suggerimento quello che mi mancava?
Edit: si sta facendo più strana, vedi screenshot:
più uno:
si esegue questo codice _exact_, e si ottiene 5? –
non esattamente ovviamente, guarda il mio screenshot qui sopra. Ho corretto anche la domanda. Punti interessanti: * s = "Stampa entrate"; // result -1 * s = "Drucke Beleg aus"; // result -1 (!) pls scusa le mie modifiche frequenti, sono nuovo di SO. –
http://i.stack.imgur.com/iGxNb.png –