delegate を変数を介さずに直接実行したい


C# にて、以下のように、delegate を変数を介さずに直接実行したいです。

[code]

    int n = delegate()
    {
        return 10;
    }();
    
[/code]

実際には上記コードは構文エラーになるので、以下のように変数を絡める必要があります。

[code]

    Func<int> f = delegate()
    {
        return 10;
    };
    int n = f();
    
[/code]

変数を介さずに呼ぶことができないと困る、というわけではありませんが、何かしら直接呼べる方法があると少しだけ嬉しいです。他言語の例を挙げると、JavaScript等では前述のコードに似た記述ができますよね。何か良い解決策または代案ありますでしょうか。



[code]

    int n = (new Func<int>(delegate() { return 10; }))();
    
[/code]




ラムダ式ですが

[code]

    var n = new Func<int>(() => 10)();
    
[/code]

も可能です。

