これを発見したときのお話。
そもそも、アンダースコア以外の記号を変数に使えんものかと思って調べてたんです。
なぜそんなものを調べていたかというと、インテリセンスのためです。
私は通常、インスタンスフィールドにプレフィクスとしてアンダースコアをつけます。
コーディング中のフィールドへのアクセス時に、アンダースコア一文字だけでフィールドがまとまって表示されるからです。
プレフィクスなしで this. でもいいんですが、それだとメソッドとか余計なものが混ざる可能性が高いわけです。
ましてやプレフィクスをつけない場合、プロパティとフィールドは先頭文字が大文字か小文字かの違いだけってことが多いので、メンドイのです。
というわけで、フィールドにはアンダースコアのプレフィクスをつけてます。
んで、なぜもうひとつ記号が欲しいかというとフィールドとは別にコントロール類を一元管理したいのです。
ASP.NET(indowsアプリでもそうかもしれませんが)だと、コントロールをベタベタ貼り付けるのでフィールドが異常なほど増えるわけです。
これにプレフィクスをつけないと、メソッドを呼び出したいのに、たくさんコントロールがヒットしたり、
コントロールじゃないフィールドにアクセスしたいのに、たくさんコントロールがヒットして選ぶのに時間かかったり。
ともかくそれがメンドクサイのです。
ましてや大量のコントロールです。いちいち全部の変数名覚えてないんですよ。
というわけで、コントロール類を表すプレフィクスとして独自の記号が使いたかったのです。
んで、@に目をつけたんですが利用方法に明らかな指針があるのと、@でインテリセンスが反応しない、@なしでも普通にアクセスできる(インテリセンス対象になる)のでどうしようもありません。
.NET はクロスランゲージな環境なため、そういった部分はなるべくミニマムセットにしなきゃいけないからでしょうね。
これが Java なら $ が使えるんだけどなぁ・・・