8155


私は日本のゲーム開発元で働いています。  
これから社員にunityの講座を行います。

monodevelopで変数に漢字・かなの名をつけるとinspectorで無事に表示されますが、  
そうするとバグや不具合が発生する場合があるかと聞きたいと思います。


CC BY-SA 3.0
2015-03-19T07:33:18.103
8112
2015-03-19T23:31:16.587
8916
question
c# unity3d
変数名　漢字と仮名の字は大丈夫？


現実には避けた方が良いでしょう。

言語仕様上は変数名にかなや漢字を使っても大丈夫なことになっているので、ソースを書いてビルドして実行する、という範囲ではそうそうおかしなことは起きないと思います。しかし、周辺ツールの類いまで含めると「非ASCII文字の識別子」を全く問題なく扱ってくれるとはとても思えません。

＃個人的には、コードを書いていていちいちIMEをON/OFFしないといけないのはとても面倒そうな気がします


CC BY-SA 3.0
2015-03-19T07:57:09.447
8115
2015-03-19T07:57:09.447
5793
8112
answer


漢字の識別子の是非の議論は置いておき、割りきってつかう場合に注意する点として、"`＋`"や"`－`"、"`？`"、"`、`"、"`０`"などがASCII文字ではないから使うというのはやめておくべきです。

大抵のツールでは、Unicode
の正規表現でソースをパースするため、これらの文字がASCII文字の"`+`"や"`-`"、"`?`"、"`,`"、"`0`"などと同じ意味として解釈するケースが多数あります。

monodevelop の環境ではありませんが、VisualStudio などでも、いくつかの文字がソースに存在するだけでフリーズすることがありました。

割りきって漢字を使うのであれば、記号は避けて純粋な「かな漢字」のみに留めておくべきです。


CC BY-SA 3.0
2015-03-19T22:59:37.283
8155
2015-03-19T22:59:37.283
8870
8112
answer


Unity及びC#で漢字を使用できることを教えることは有用ですが、漢字を使用して教育を行うことは不適切に思います。  
というのも多くの言語では英数字のみの識別子が使われています。またUnity及びC#でも多くのコードは英数字のみを使用されています。ここで漢字慣れしてしまうと他の人の書いたコードを読み辛くなりますし、他の言語での開発にもハードルが上がってしまいます。間接的ではありますが教育を受けた開発者の能力を下げる行為と言えるのではないでしょうか？  
加えて[error CS1525: Unexpected symbol '< internal
>'の意味](https://ja.stackoverflow.com/a/7850/4236)のように不用意にバグに遭遇する確率も上がります。


CC BY-SA 3.0
2015-03-19T23:31:16.587
8156
2015-03-19T23:31:16.587
2017-04-13T12:52:39.113
-1
4236
8112
answer