デリゲートを手動で作成する場合とAction/Funcデリゲートを使用する場合の比較
2023-11-14 19:20:34
質問
今日、私はこれを宣言しようと思っていました。
private delegate double ChangeListAction(string param1, int number);
が、なぜこれを使わないのか。
private Func<string, int, double> ChangeListAction;
または
ChangeListAction
は私が使うことのできる戻り値を持たないでしょう。
private Action<string,int> ChangeListAction;
でデリゲートを宣言することの利点は何でしょうか?
delegate
キーワードで宣言する利点は何でしょうか?
.NET 1.1から.NET 2.0になったからでしょうか。
Action<T>
で、.NET 3.5 で
Func<T>
?
どのように解決するのですか?
利点は明確さです。型に明示的な名前をつけることで、それが何をするものなのかが読者にとってより明確になります。
また、コードを書くときにも役に立ちます。このようなエラーは
cannot convert from Func<string, int, double> to Func<string, int, int, double>
というものは、あまり役に立ちません。
cannot convert from CreateListAction to UpdateListAction
また、2つの異なるデリゲートがあり、どちらも同じタイプのパラメータを取りますが、概念的には2つの全く異なることをします。
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み] 関数を終了するには?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み】なぜFunc<T>ではなくExpression<Func<T>を使うのですか?
-
[解決済み] デレゲート 述語 vs. アクション vs. 関数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み] Func<string,string>とdelegateの違いは何ですか?