役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

.NETでisalnum

うわ、ほぼ一年書いてないorz

ともあれ。
C#の勉強してて「不正な入力をはねるプログラムを作れ」ってな問題があった。
で、「じゃあとりあえず、英数以外が混じってたらアウトにしよう」(ここの仕様詳細、問題文に指定なし)と思ってCのisalnumをやろうとしたらどーなんだろう、と調べてみたら……
来たよ、Unicode原理主義orz
System.CharにIs〜系のstaticメソッドはたくさんあるんだが、例えば
・IsDigit……0-9とは限らない。
・IsLetter……メソッド名どおり、英字だけじゃない。どうやら欧文のウムラウト付きどころか、グリークアルファベット、キリル文字ヘブライアレフベート、アラビア文字、もちろん漢字にひらがなetc.etc.全部「文字」らしい。
うーむ。まあそのメソッド名に偽りはないが(少し前までドキュメントには「IsLetterはアルファベットに対してtrueを返す」とあったらしいのでドキュメントには偽りありだが)、何の役に立つのさこのメソッド
現場じゃisalnumの需要はあると思うんだが……毎回実装せんならんのね。大した手間じゃないけどさorz