C#クラス名で許可される文字と許可されない文字は何ですか?助けてもらえますか?
編集:指定します。どのような特殊文字が許可されていますか?高度な言語の50ページの仕様へのリンクは、私にとって大いに役立つ答えではないため、具体的に説明してください。
説明:私が達成しようとしているのは、クラス名を次のように区別可能な部分に分割することです:
クラスPerson @ WorkOffice @ Helper @ Class
{
}
そして、このクラス名からPerson、WorkOffice、Helper、Classの一部を取得できるようにするために、ある種のキャラクターなどを使用する方法について考えます。
そして、はい、私はそれがクレイジーであることを知っていますが、私はそれが必要です。属性とリフレクションを使用してこのデータをクラスメタに格納できることは知っていますが、そうではないため、この解決策を提案しないでください。
Unicodeカテゴリは次の場所にあります: http://www.dpawson.co.uk/xsl/rev2/UnicodeCategories.html
そしてそこから、グループ内からほとんどのものを選択できます( specs から、他の人も正しく指し示しています):
Lu、Ll、Lt、Lm、Lo、Nl、Mn、Mc、Nd、Pc、Cf
ただし、Visual Studio(またはResharper)は必ずしもそれらすべてを好むわけではありませんが、それらのほとんどはコンパイルを行います。たとえば、キャラクター30FB KATAKANA MIDDLE DOTを取り上げます。コンパイルは正常に完了しますが、IDEでニースを再生しません。しかし、この奇妙なFE34プレゼンテーションフォームは、垂直波状低ラインのためにうまく機能します。
ここでは罰金を作品区切り文字です。
class Person〱WorkOffice〱Helper〱Class
{
}
私は、私も変な文字を使用することをお勧めしますとは言いませんよ。しかし、このような特別な行事のためのようだ:)
編集:ユニコード3.0からの文字を許可するように仕様が述べていることに注意してください。私はそれを見落とし、多くのキャラクターが適切なグループに属しているにもかかわらず、なぜ機能しないのか疑問に思いました。 詳細については、この質問を確認してください。
Thecoopが示すように、Unicodeのコンテキストにおける「文字」という用語は、アルファベット文字よりもはるかに広いことに注意してください。
基本的に、多くの nicodeシンボル は、Windowsで 入力が難しい であっても、識別子で有効に使用できます。
例として:
コードにギリシャ語の大文字のデルタを追加します...これは、C#に関する限り有効な識別文字です。
ただし、CLSへの準拠は範囲外になりますが、その音によって、とにかくあまり心配する必要はないことに注意してください。
以下に役立つ記事を示します。 C#コーディング標準と命名規則
要するに、一般的に、オブジェクトの最初の単語/部分/文字はlowercaseであり、クラスはuppercase。
例えば:
HtmlHelper htmlHelper;
FtpTransfer ftpTransfer;
UIControl uiControl;