ここ最近、WPFのデータ検証に関してクラスライブラリを書いてたんですが、調査の過程でC#でも _ に意味があることを知りました。

詳しくは、
破棄
変数宣言式
あたりを見ていただいた方が、私が説明するよりずっとわかりやすいと思うので、ここでは詳細には触れません。
大先生のブログにはいつもお世話になっております。

F#だとアンダースコア一字にはワイルドカードという意味があるのですが、C#の場合は普通に変数名として使えていました。
特にラムダ式のパラメータ名なんかには、名前考えるのが面倒くさくてよく使っていたのですが、今後はやめておこうと思います。
本当にdiscardするつもりのところはアンダースコアでいいのでしょうけど。

一応、今後もC#では一般変数名として使えるようなんですけどね...。

さて、そうなると、ラムダ式のパラメータとして何を使うか。

ここによると、大先生はxを使うみたいですね。

こういうのって、文脈上で意味をつけたい場合はそれなりの名前を付けると思うのですけど、Whereに指定するpredicateなんか、特に意味なんて無いですよねぇ。

ちょっと考えて、単純にaで行くことにしましたw
2つになったら、次はbか...w

こういう自分だけのローカルルールって、私の場合は、

  • SQLのSelect文で、駆動表(from句に指定するテーブル)のエイリアスはM。ぶら下げる外部結合テーブルはS1S2S3
  • VBAでローカル変数を定義する場合は、aをプレフィクスとして付ける。aHogeHogeとか。forループのカウンタ変数はijk

くらいかなぁ。そんなに多くないかな?

既に書いてしまった既存のラムダ式を検索してみましたが、_いっぱい使ってるぅ~。

当サイトのプログラムにも結構使ってました。(昨日、修正済み)

早く、癖にしないと...。.Where(a => a.IsIminantenaiYo)....


と、以前書いていたのですが、ラムダ式のパラメータで意味を付けにくいものに aを使うとVisual Studioのインテリセンスがとても邪魔くさいことに気づきましたw
aから始まる語は沢山ありますよね...
それで大先生は xを使っていたのか... (真相はわかりませんw

インテリセンスが邪魔しない文字。2文字でも良いかも。

という感じで、まだ自分の中でもローカルルールが完成していません。