1

func とは何かは知っていますが、次のコードを理解できません。

単純なプロパティがあります:

    public Func<DomainFacade> BusinessFacadeFactory { get; set; }

プロパティの設定方法は次のとおりです。

    this.BusinessFacadeFactory = () => new DomainFacade();

プロパティを設定するこの方法は、匿名メソッドですか、それとも何か他のものですか?

4

5 に答える 5

5

これはラムダ式と呼ばれます。

これは匿名メソッドのよりコンパクトな形式です。

于 2012-10-19T12:47:06.983 に答える
3

() => new DomainFacade()ラムダ式です

これは、の代わりに記述された名前のないメソッドdelegateです 。コンパイラはそれをデリゲートインスタンスに変換します。

本当のフォーマットは

(parameter)=>expression or a statement block

を割り当てるfunc必要があるため、内部でデリゲートインスタンスに変換されるの代わりにを記述することができます。delegatelambda expressiondelegate

それで、

()空のパラメータを示します

new DomainFacade();式です

コンパイラによって内部的にデリゲートに変換されます

于 2012-10-19T12:56:01.923 に答える
1

() => new DomainFacade()ラムダ式です。
これは、デリゲート値として返されるインライン メソッドです。

于 2012-10-19T12:47:31.460 に答える
1

他の人が言ったように、これはラムダ式です。長い形式でこのように分解すると、次のようになります。

this.BusinessFacadeFactory = () => new DomainFacade();

それから

this.BusinessFacadeFactory = new delegate(){ return new DomainFacade()};

それから

...
BusinessFacadeFactory = OnBusinessFacadeFactory; 
...

private DomainFacade OnBusinessFacadeFactory()
{
  return new DomainFacade()
}
于 2012-10-19T12:48:38.400 に答える
1

これはラムダ式であり、匿名メソッドを作成するための省略形です。

() 

入力パラメーターです (つまり、なし)

new DomainFacade(); 

メソッド本体です。

于 2012-10-19T12:48:53.890 に答える