投稿数 - 437, コメント - 59539, トラックバック - 156

書けそうで書けない C# の構文

宣言して実行する。 - かるあのメモ

かるあさんの記事を見て思い出した。

次のようなコードが書けなくて、「あれ?」って思った事は一度や二度ではない。よく考えれば、書けない理由を納得できなくもないのだが、何となく気に入らない。

class Program{
    static void Func(Delegate d) {
    }

    static void Main(){
        Func(() => true);
    }
}

結局、次の2つのどちらかで書く必要がある。

class Program{
    static void Func(Delegate d) {
    }

    static void Main(){
        Func ((Func<bool>)(() => true));
    }
}

class Program{
    static void Func(Func<bool> d) {
    }

    static void Main(){
        Func(() => true);
    }
}

投稿日時 : 2008年6月22日 18:52

フィードバック

# re: 書けそうで書けない C# の構文

C# 3.0 のコンパイラならば、Func<bool> にキャストするようコンパイルしてくれても良さそうですね
個人的には、Func<> とか Action<> がイマイチ好きになれないので、してくれなくて構わないですがw
2008/06/22 21:40 | よこけん

# re: 書けそうで書けない C# の構文

>C# 3.0 のコンパイラならば、Func<bool> にキャストするようコンパイルしてくれても良さそうですね

または、適当なプライベート Delegate を定義してくれてもいいんじゃない?とも思いました。
2008/06/22 21:49 | 囚人

コメントの投稿

タイトル
名前
URL
コメント