http://d.hatena.ne.jp/siokoshou/20091111#p1
ちょっと今の時期にBeta1の記事になってるっぽいですが、String.IndexOfはいままでの挙動と変更になります。
Beta2では少なくともStringComparsion.Ordinalがデフォルトになっています。
以下同じソースコードですが
Console.WriteLine( "AA".IndexOf("〇A") );
Console.WriteLine( "AA".IndexOf("〇") );
Console.WriteLine( "A〇A".IndexOf("AA") );
Console.WriteLine( "〇A〇A".IndexOf("AA") );
Console.WriteLine( "〇A〇A".IndexOf("〇A") );
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A" ) );
Console.WriteLine();
Console.WriteLine( "AA".IndexOf( "〇A", StringComparison.Ordinal ) );
Console.WriteLine( "AA".IndexOf( "〇", StringComparison.Ordinal ) );
Console.WriteLine( "A〇A".IndexOf( "AA", StringComparison.Ordinal ) );
Console.WriteLine( "〇A〇A".IndexOf( "AA", StringComparison.Ordinal ) );
Console.WriteLine( "〇A〇A".IndexOf( "〇A", StringComparison.Ordinal ) );
Console.WriteLine( "〇A〇A".LastIndexOf( "〇A", StringComparison.Ordinal ) );
-1
-1
-1
-1
0
2
-1
-1
-1
-1
0
2
ターゲットバージョンを3.5に変更すると
0
0
0
1
1
3
-1
-1
-1
-1
0
2
になります。
いままで意識せずに使っていたIndexOfが怖いこと理解していただけましたでしょうか?
“愛々”問題 と言われていました。