aşağıdaki karaktere işlemek için çalışıyor: ⨝ (http://www.fileformat.info/info/unicode/char/2a1d/index.htm)string.Empty.StartsWith (((char) 10781) .ToString()) her zaman doğru döner?
boş bir dize bu karakterle başlayan olmadığını kontrol, bu her zaman true döndürür, bu hiç mantıklı değil! Neden?
// visual studio 2008 hides lines that have this char literally (bug in visual studio?!?) so i wrote it's unicode instead.
char specialChar = (char)10781;
string specialString = specialChar.ToString();
// prints 1
Console.WriteLine(specialString.Length);
// prints 10781
Console.WriteLine((int)specialChar);
// prints false
Console.WriteLine(string.Empty.StartsWith("A"));
// both prints true WTF?!?
Console.WriteLine(string.Empty.StartsWith(specialString));
Console.WriteLine(string.Empty.StartsWith(((char)10781).ToString()));
Kültür duyarlı-karşılaştırma-varsayılan olarak, en az sürpriz ilkesi büyük bir felaket ihlali gibi görünüyor. Normal "ordinal davranışlar elde etmek için hangi yöntemlerin StringComparison gerektirdiğini belirlemek için hangi kurallar var?" – bobince
@ bobince- bu soruyu gördünüz mü? Http: // stackoverflow.com/sorular/72696 /-is-genel-iyi kullanımlı-stringcomparison-ordinalignorecase-ya-stringcom – RichardOD