戻り値の型は同じでパラメーターが異なる別の関数に関数を送信することはできますか?

Stu Stephenson

データベースやクラウドストレージコンテナに画像をアップロードするために現在使用されているAttachmentService.csクラスがあります。クラウドにアップロードするとき、2つの別々のメソッドによって呼び出されたときに再利用したい再試行ロジックがいくつかあります。各関数をパラメーターとして渡し、渡されたメソッド内から呼び出したいと思います。これが私が現在持っている2つの署名です:

C#

//Example: I want to be able to pass the first function and also the second
//I'm sure it can done with generics but can't seem to get it currently
private AttachmentUploadResult UploadAttachmentToGLS(Func<string, Guid, byte?[], string, AttachmentUploadResult> uploadFunction)
private AttachmentUploadResult UploadAttachmentToGLS(Func<AttachmentEntity, AttachmentUploadResult> uploadFunction)

上記のコードに、どちらかを取ることができる署名を1つだけ含めたい

Func<string, Guid, byte?[], string, AttachmentUploadResult> uploadFunctionまたはFunc<AttachmentEntity, AttachmentUploadResult> uploadFunction、私のメソッドが次のようになるようにします。

private AttachmentUploadResult UploadAttachmentToGLS(Func<parameters, AttachmentUploadResult>uploadFunction)
{
    //Some retry logic
    uploadFunction(parameters);
    //Some more retry logic
}

上記を達成する方法はありますか?Funcを読みましたが、これが正しいデリゲートであるとは思いません。

ルアン

関数のシグニチャは次のようになります。メソッドFunc<AttachmentUploadResult>内のパラメータはあまり気にしないUploadAttachmentので、それらを閉じる必要があります。その場合、呼び出しは次のようになります。

Upload(() => SomeUploadMethod(theActual, parameters, toTheMethod));

また、実装の詳細をUploadAttachmentメソッドから隠すこともできます。気になるのは、「これは、アップロードを実行したいときに呼び出す関数です」ということだけです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kotlinでは、戻り値の型が異なるプロパティゲッターと同じ関数シグネチャを使用できます

分類Dev

同じ名前、戻り値の型、異なるパラメーターを持つ2つの関数を宣言できますか

分類Dev

関数を引数として別の関数に渡すときに、入力関数のパラメーターの型と戻り値の型を指定するにはどうすればよいですか?

分類Dev

同じTまたは異なるRの値を返すジェネリック関数は、デフォルトのパラメーター値として高階関数 '(i:T)=> i'を受け入れることができません。

分類Dev

なぜ純粋に関数型言語では、値によってのみパラメーターを渡すことができるのですか?

分類Dev

関数のパラメーター値に基づいて、C ++で関数の戻り値の型を動的に変更する方法はありますか?

分類Dev

同じ目的で引数の型が異なる2つの関数の代わりに1つの関数を作成することは可能ですか?(重複するコードを削除できますか?)

分類Dev

関数の戻り値がテンプレートパラメーターと同じであるテンプレートパラメーターとして関数を渡すにはどうすればよいですか?

分類Dev

Rプログラミング:関数の戻り値またはパラメーター型を宣言することは可能ですか?

分類Dev

同じ名前でパラメーターが異なる2つの関数を定義できますか?

分類Dev

現在のパッケージのリテラルstructパラメーターを使用してstructを関数に渡すと、別のパッケージの関数と同じものが異なるのはなぜですか?

分類Dev

関数パラメーターと同じ名前の変数を作成できるのはなぜですか?

分類Dev

このラムダ式を異なる関数型インターフェースに割り当てることができるのはなぜですか?

分類Dev

PHPの別の関数のパラメーターとして関数の戻り値を使用するにはどうすればよいですか?

分類Dev

異なる型のパラメーターを返すことができる関数で型ヒントを使用することは意味がありますか?

分類Dev

ジェネリックス-関数の戻り型はパラメータ型と同じですか?

分類Dev

名前は同じですが、引数と戻り値の型が異なる仮想関数

分類Dev

最初のパラメーターと同じ戻り型を持つ関数を定義する正しい方法は何ですか

分類Dev

最初のパラメーターと同じ戻り型を持つ関数を定義する正しい方法は何ですか

分類Dev

非同期関数の戻り値の存続期間がパラメーターと同じであることを示すにはどうすればよいですか?

分類Dev

別の関数のパラメーターと同じタイプでパラメーターが異なるSpring Beanに関する混乱

分類Dev

Scalaでは、名前パラメーターによる呼び出しを受け取る関数は、別の関数をパラメーターとして受け取る関数とは異なりますか?

分類Dev

Scalaでは、名前パラメーターによる呼び出しを受け取る関数は、別の関数をパラメーターとして受け取る関数とは異なりますか?

分類Dev

Swiftの関数は異なるデータ型を返すことができますか?

分類Dev

関数をデフォルトのパラメータ値にすることはできますか?

分類Dev

Javaクラスには、関数シグネチャは同じですが戻り型が異なる2つのメソッドがあります

分類Dev

ある関数から別の関数にパラメーターを渡す方法ですが、phpの同じクラスにあります

分類Dev

関数パラメーターを同じ関数の別のパラメーターとして使用する方法はありますか?

分類Dev

別のSpringコントローラで異なるパラメータを持つ同じマッピング値を持つことはできますか?

Related 関連記事

  1. 1

    Kotlinでは、戻り値の型が異なるプロパティゲッターと同じ関数シグネチャを使用できます

  2. 2

    同じ名前、戻り値の型、異なるパラメーターを持つ2つの関数を宣言できますか

  3. 3

    関数を引数として別の関数に渡すときに、入力関数のパラメーターの型と戻り値の型を指定するにはどうすればよいですか?

  4. 4

    同じTまたは異なるRの値を返すジェネリック関数は、デフォルトのパラメーター値として高階関数 '(i:T)=> i'を受け入れることができません。

  5. 5

    なぜ純粋に関数型言語では、値によってのみパラメーターを渡すことができるのですか?

  6. 6

    関数のパラメーター値に基づいて、C ++で関数の戻り値の型を動的に変更する方法はありますか?

  7. 7

    同じ目的で引数の型が異なる2つの関数の代わりに1つの関数を作成することは可能ですか?(重複するコードを削除できますか?)

  8. 8

    関数の戻り値がテンプレートパラメーターと同じであるテンプレートパラメーターとして関数を渡すにはどうすればよいですか?

  9. 9

    Rプログラミング:関数の戻り値またはパラメーター型を宣言することは可能ですか?

  10. 10

    同じ名前でパラメーターが異なる2つの関数を定義できますか?

  11. 11

    現在のパッケージのリテラルstructパラメーターを使用してstructを関数に渡すと、別のパッケージの関数と同じものが異なるのはなぜですか?

  12. 12

    関数パラメーターと同じ名前の変数を作成できるのはなぜですか?

  13. 13

    このラムダ式を異なる関数型インターフェースに割り当てることができるのはなぜですか?

  14. 14

    PHPの別の関数のパラメーターとして関数の戻り値を使用するにはどうすればよいですか?

  15. 15

    異なる型のパラメーターを返すことができる関数で型ヒントを使用することは意味がありますか?

  16. 16

    ジェネリックス-関数の戻り型はパラメータ型と同じですか?

  17. 17

    名前は同じですが、引数と戻り値の型が異なる仮想関数

  18. 18

    最初のパラメーターと同じ戻り型を持つ関数を定義する正しい方法は何ですか

  19. 19

    最初のパラメーターと同じ戻り型を持つ関数を定義する正しい方法は何ですか

  20. 20

    非同期関数の戻り値の存続期間がパラメーターと同じであることを示すにはどうすればよいですか?

  21. 21

    別の関数のパラメーターと同じタイプでパラメーターが異なるSpring Beanに関する混乱

  22. 22

    Scalaでは、名前パラメーターによる呼び出しを受け取る関数は、別の関数をパラメーターとして受け取る関数とは異なりますか?

  23. 23

    Scalaでは、名前パラメーターによる呼び出しを受け取る関数は、別の関数をパラメーターとして受け取る関数とは異なりますか?

  24. 24

    Swiftの関数は異なるデータ型を返すことができますか?

  25. 25

    関数をデフォルトのパラメータ値にすることはできますか?

  26. 26

    Javaクラスには、関数シグネチャは同じですが戻り型が異なる2つのメソッドがあります

  27. 27

    ある関数から別の関数にパラメーターを渡す方法ですが、phpの同じクラスにあります

  28. 28

    関数パラメーターを同じ関数の別のパラメーターとして使用する方法はありますか?

  29. 29

    別のSpringコントローラで異なるパラメータを持つ同じマッピング値を持つことはできますか?

ホットタグ

アーカイブ