.NET の WinRT バージョンの文字列クラスは IEnumerable を実装していないようです。なぜ彼らはそんなことをしたのだろうか?
質問する
201 次
1 に答える
5
あなたの「なぜ?」この回答の下にあるDavid Keanのコメントによって回答されます。
文字列のメソッドを削除した理由は、WinRT のためではなく、最初に追加したことを後悔したか、将来の革新に関する計画を制限したメソッドを削除する機会を選んだためです。
String.GetEnumerator は、「もう一度始めたら追加しない」というバケツに分類されます。.NET Framework では CharEnumerator を返しますが、これは文字列を反復処理するには非常に非効率的です (ループごとに割り当てが発生します)。また、C# と VB の両方の foreach のコード スピットは、1.0 日以来この型を使用していません。(文字列に対する foreach を、文字列のインデクサーを使用する効果的な "for ループ" に変換するようになりました)。一部の削除は恣意的に見えるかもしれませんが、すべての削除は意図的な選択であり、上記のバケツの 1 つに分類されました。
于 2013-05-08T12:16:26.117 に答える