2016-11-17 7 views
1

プロパティの名前がす​​べてSystem.Text.Encoding.UTF8のすべてが大文字ですか? Capitalization Rules for Identifiersと、UTFが2文字より長い頭字語であるという事実によれば、このプロパティの名前はSystem.Text.Encoding.Utf8であるべきですか、間違っていますか?識別子とプロパティの.NETの大文字の規則System.Text.Encoding.UTF8

+0

私は単純な理由は誰もが常にすべてのルールを認識しているわけではない、あるいはルールが書き留められる前に決定された可能性があると思います。 –

+0

はおそらくintellisenseのもう1つのセールスポイントを提供するでしょう!これは普通にユニコードの表記法で書かれているからです。https://en.wikipedia.org/wiki/Unicode – enricoariel

答えて

1

このように作成されているため、すべて大文字です。

.NET 1.0(およびEncoding.UTF8)の設計と実装は、フレームワーク設計ガイドライン(Framework Design Guideline)よりも、現在の形式では十分です。その結果、これらのガイドラインの枠内で多くの違反を見つけることができます。小さなサンプル:

  • System.Security.Cryptography.RNGCryptoServiceProvider(およびSystem.Security.Cryptographyで他のクラスのたくさん)
  • System.Text.ASCIIEncoding
  • System.Runtime.InteropServices.COMException

かつ体系的検索は、おそらくより多くのを示すだろう。

これは見た目に似ているわけではありません。人々が最初にガイドラインを提示するのは、このような不一致が気づき、現在の状況を最もよく反映する一連のルール実践。しかし、現在のクラスの大文字と小文字を変更する(そしてプロセス中の既存のソフトウェアを改ざんする)ことは価値がありません。

+0

新しいクラスについては、正しい名前、例えば「Utf8」や'Ascii'は間違ったものの隣に奇妙に見える? –

+0

@RadekMicek: "奇妙に見える"は、あなたが正式化できるものではないので、はい。フレームワークに 'ASCIIEncoding'クラスも存在するため、あなた自身のクラスで' ASCII'を綴る魅力的な理由はありません。誰かがすべての例外を追跡しなければならない場合、あなたが最初にフレームワークをチェックしなければならない*作成する任意のクラスについて、どれほど不便なのか想像してみてください!今、あなたが既存の 'System.Text'名前空間に新しいクラスを追加しているならば、物事は異なるかもしれません。しかし、それは名前空間の中にあります。 (私はマイクロソフトのローカルポリシーを知らない) –

関連する問題