++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

C# で識別子に使える文字

with one comment

C# では、「ー」(長音記号)は変数名に使えるけども、「~」(全角チルダとして扱われる)は使えない!という話を聞いて、色々確認してみた。

まずそもそも、C# の仕様上どうなっているかというと:

はい、意味わかんないですね。Lu とか Mn とか言われてすぐ何かわかる人はよっぽど普段から Unicode とおつきあいのある人かと。

ということで、下記参照:

識別子の1文字目から使える文字

  • letter-character
    • Lu … 大文字
    • Ll … 小文字
    • Lt … 見出しにだけ使うような特殊なアルファベット
    • Lm … 文字修飾子。日本語でいうと、長音記号とか繰り返し記号(〃 とか)。
      • 意外なのが、三角コロン(ː 長音を表す発音記号)はこのカテゴリーなので、識別子に使える
    • Lo … その他の文字。大小の区別持たないような言語の文字は全部これ(漢字もひらがなも Lo)
    • Nl … ローマ数字とか

いわゆる可読文字なら大抵の言語の文字使える。

2文字目以降に使える文字

  • combining-character
    • Mn … アクセント記号とか(â ← この a の上に乗ってるようなやつ)
    • Mc … Æ みたいな、2文字くっつくようなやつ
  • connecting-character
    • Pc … 単語をつなぐ文字。アンダーバーとか
      • 以外にも、・(カタカナの中点)はこのカテゴリー
      • (数学のドット演算子は別の文字コードが割りあたってて、こっちは使えない)
  • decimal-digit-character
    • Nd … 数字。算用数字だけじゃなくて、インドとか東南アジアの数字も使える
      • なんでローマ数字だけ先頭から使えるんだろう?
  • formatting-character
    • Cf … 書式指定。ZERO WIDTH JOINER とか LEFT-TO-RIGHT MARK とか

使えそうで使えない文字

  • ・(ドット)は使えるのに:(全角コロン)とかは使えない
    • 句読点は無理。全角であってもコロンは句読点扱い
  • ダッシュ記号類(― とか)は使えない
    • 見た目は長音記号と似てるけど、意味的には文の区切りなので
  • ー(長音記号)は使えるのに~は使えない
    • WAVE DASH はダッシュ記号
    • FULLWIDTH TILDE は数学記号
    • どっちに転んでもダメ
  • ¥(全角円記号)
    • Sc (通貨記号)扱い

ということで、ちょっと遊んでみた

繰り返し記号を識別子に

三角コロン、カタカナ中点、繰り返し記号で作った変数。キモい。

広告

Written by ufcpp

2009年12月1日 @ 15:45

カテゴリー: C#

コメント / トラックバック1件

Subscribe to comments with RSS.


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。