DOSEIの日記

技術メモ+日常ログ

C#

配列の一括変換

C++ には、 STL の algorithm に各要素に一括で関数を適用する for_each と transform があるのだが*1、 C# にはなさげ。こういうときは、 LINQ を使って、 var Y = (from x in X select f(x)).toArray(); とか書けばよし。しかも、 UnaryFunction みたいな…

Visual Studio 系 SP1

SP1 ktkr. Express Edition の SP1 を探してたら、普通版の最初入れようとして、 Express エディションとは互換性ないから一昨日来やがれ的なダイアログに遭い、でも "Express のサイト" には、そこにリンク貼ってあるし…とおもったら、そのページの書く言語…

doublebuffered なコントロールを作る

以下, Visual C# 2008 Express での操作メモ. Form は Doublebuffered = true にできるので, ちらつかずにお絵描きできる モダンなコントロール MenuStrip や ToolStrip はクールだが, 伝統的なメニューとかと違い, クライアント領域の上に乗っかってるので,…

ダウンキャストによる関数呼び出し

抽象基底クラス B があったとして、クラス D1, D2 が派生している。 関数 f(D1), f(D2) をオーバーロード定義したとき, f に B の変数を渡して自動的に呼ばれるものが振り分けられないかなーと思ったけど、だめだった。こういうときはどうすればいいのか。 f…