0

コードレビューではなく、ここに投稿しています。これにより、実行中のプログラムが異なる動作をする可能性があるかどうかを知りたいからです (おそらく微妙なもの)。

プライベート メソッドです。

    private int Foo()
    {
        return Bar().Bat();
    }

プライベート Func との違いはありますか?

    private Func<int> Foo = () => Bar().Bat();

私がそうしている唯一の理由は、コードをよりコンパクトにすることです。

4

3 に答える 3

2

あまり違いはありませんが、

  • テンプレート化された型を定義しますint(提供されている現在のコードに表示されていなくても、タイプ セーフである可能性があります)

  • その関数をパラメーターのように使用して別の関数に渡すことができます。これは当然のことながら、最初のケースでも行うことができますが、最初のケースではdelegate型を宣言する必要があります。

  • 3番目はよりコンパクトですが、最初の方が読みやすいので、「機能的な」ものが必要ない場合は、最初の選択肢を選びます。

于 2012-04-21T07:27:44.967 に答える
0

Func を使用すると、実際には匿名メソッドへの参照を保存しています。コンパイラはそれから名前付きメソッドを作成します。あなたがしていることは、それへの追加の参照を保存するようなものです。

それは大したことではないので、標準がメソッドに名前を付けていることを除けば、大きな違いはありません。また、より論理的で読みやすいです。

于 2012-04-21T07:33:27.953 に答える
0

Funcs はdelegates であり、等しい署名 og を持つすべてのメソッドをカプセル化しますFunc。レイヤリング用に使用することをお勧めしますPrivate Methods

于 2012-04-21T07:28:47.687 に答える