問題タブ [func]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
245 参照

php - OOP クエリ関数

これが本当にばかげた質問のように聞こえるかもしれませんが、オブジェクト指向プログラミングの概念を理解し始めたばかりで、phpのシングルトンパターンについて少し混乱しています。

変数として保存されたフェッチされた行からの結果をシングルトンパターンに保存するとともに、クエリを組み込むにはどうすればよいですか?

たとえば、以下のコードはどのように組み込まれますか?

0 投票する
4 に答える
4215 参照

c# - カプセル化アクションおよびFunc

ある種のIExecutableインターフェースのデザインを作ろうとしています。詳細については説明しませんが、要点は、基本クラスから実行する必要のあるアクションがいくつかあるということです。それらは異なるパラメーターをとる場合があり(大したことではありません)、値を返す場合と返さない場合があります。

これまでのところ、これは私のデザインです。

これまでのところ、私の具体的なアクションはそれぞれ、ActionWithResultBaseまたはActionWithoutResultベースの子である必要がありますが、私はそれが本当に好きではありません。Executeの定義をActionBaseに移動できれば、具象クラスが値を返す場合と返さない場合があることを考慮して、目標を達成できます。

誰かがこれはFuncとActionを使用して行うことができると私に言いましたが、私は完全に同意しますが、アクションが値を返すかどうかを発信者が知ることができるように、それを1つのクラスにまとめる方法を見つけることができません。いいえ。

簡単な説明:次のようなことをしたい:

0 投票する
3 に答える
396638 参照

c# - ファンクvs.アクションvs.述語

実際の例とその使用法について、誰かが私が理解するのを手伝ってくれませんか。

  1. Func<T, ..>いつ代理人が必要ですか?
  2. Action<T>いつ代理人が必要ですか?
  3. Predicate<T>いつ代理人が必要ですか?
0 投票する
3 に答える
632 参照

c#-4.0 - C#4.0の「Func<>」に「TimeOut」パラメーターを追加します

機能の使用関数をカプセル化し、それらにパラメーターをC# 4.0追加するための汎用ラッパーが必要です。TimeOut

たとえば、次のような関数があります。

私たちを使用Funcして:

Syncこれは適切であり、関数を(Invloke)またはAsync( )でも呼び出しますBeginInvoke。ここで、TimeOutこの動作に追加されると考えてください。DoLengthyOperation()指定された時間内に戻った場合はtrue戻ってきました。それ以外の場合はfalse

何かのようなもの:

0 投票する
5 に答える
1056 参照

c# - Func<> (または Action<>) を使用するか、独自のデリゲートを作成しますか?

たとえば、メソッドのパラメーターの型でどちらが優れているか (LINQ とは関係ありません)。どうやら Func の方がシンプルでわかりやすいので、より優れているようです。誰もがこれを使用すると、すべてが互換性を持つようになります (良い)。ただし、Microsoft が一部のライブラリ (イベント ハンドラーなど) で独自のデリゲートを使用していることに気付きました。では、それぞれの長所と短所は何ですか?いつ使用すればよいですか?

編集:

  • どうやら Func<> は 3.5 でしか利用できなかったので、これが Func 以外のデリゲートを見た主な理由である可能性があります。Func を使用しない他の理由はありますか? (例:これは .NET4 からのものです)

  • 同じ質問が Action<> にも当てはまります

0 投票する
2 に答える
4040 参照

c# - 署名が一致しても、あるタイプのデリゲートを別のタイプに割り当てることはできません

私の病的な好奇心は、次のことがなぜ失敗するのか疑問に思っています。

0 投票する
8 に答える
17788 参照

c# - 手動でのデリゲートの作成と Action/Func デリゲートの使用

今日、私はこれを宣言することを考えていました:

しかし、なぜこれを使用しないのですか:

または、ChangeListAction使用できる戻り値がない場合:

delegateでは、キーワードでデリゲートを宣言する利点はどこにあるのでしょうか?

.NET 1.1 が原因で、.NET 2.0 が登場Action<T>し、.NET 3.5 が登場したためFunc<T>ですか?

0 投票する
5 に答える
464 参照

c# - コーディングスタイルの統合:Funcs、プライベートメソッド、シングルメソッドクラス

現在、3人の開発者がいて、いくつかは相反するスタイルを持っています。私は王国に平和をもたらす方法を探しています...

コーダー:

Foo 1:パブリックメソッド内でFuncとActionを使用するのが好きです。彼は、アクションを使用して長いメソッド呼び出しをエイリアス化し、Funcを使用して、1行または2行で表現でき、コード全体で頻繁に使用される単純なタスクを実行します。

長所:彼のコードの本体は簡潔で非常に読みやすく、多くの場合、クラスごとに1つまたは2つのパブリックメソッドしかなく、プライベートメソッドはほとんどありません。

短所:メソッドの開始には、他の開発者が読むのが好きではないラムダリッチコードのブロックが含まれています。また、場合によっては、他の開発者が本当に読みたくない高階関数を含めることができます。


Foo 2:パブリックメソッドが実行する必要のある(ほぼ)すべてのプライベートメソッドを作成するのが好きです。

長所:パブリックメソッドは小さくて読みやすいままです(すべての開発者にとって)。

短所:プライベートメソッドは多数あります。他のプライベートメソッドを呼び出すプライベートメソッド、...などを呼び出すプライベートメソッドを使用します。コードをナビゲートしにくくします。


Foo 3:実行する必要のあるすべての重要なタスクに対して、単一のpublicメソッドを使用してパブリッククラスを作成し、依存性によってそれらを他のオブジェクトに注入するのが好きです。

長所:簡単にテストでき、理解しやすい(1つのオブジェクト、1つの責任)。

短所:プロジェクトはクラスによって散らかされ、複数のクラスファイルを開いて、コードの機能を理解するとナビゲーションが煩雑になります。


これらすべてのテクニックを最大限に活用するのは素晴らしいことです...

Foo-1は、メソッドの開始時にまとめられたすべてのActionラムダシェナニガンとFuncラムダシェナニガンを除いて、ほとんどの場合、非常に優れた、読み取り可能な(ほぼdslのような)コードを持っています。

Foo-3は、高度にテスト可能で拡張可能なコードを備えており、一部のソリューションでは少し「中かっこ」を感じ、コードナビゲーションの微妙な違いがあります(VSで常にF12を押し、他の5つの.csファイルを開いて単一のファイルを確認します)メソッドは行います)。

そしてFoo-2...ジュニアが掘り下げやすいという事実を除いて、2つのパブリックメソッドと12のプライベートメソッドを含む1つの巨大な.csファイルについて何かが好きかどうかはわかりません。

私は、これらのコーディングスタイルの説明を大幅に単純化しすぎたことを認めます。しかし、3人の開発者を団結させるのに役立つパターン、慣行、または外交的操作を知っている人がいれば、それは素晴らしいことです。

実現可能性の観点から:

  • Foo-1のスタイルは、ラムダやFuncが読みにくいと感じる開発者がいるため、最も抵抗があります。
  • Foo-2のスタイルは、簡単に陥りやすいため、抵抗が少なくなります。
  • Foo-3のスタイルは、最も前向きな考え方を必要とし、時間が短い場合に実施するのは困難です。

これを機能させることができるいくつかのコーディングスタイルまたは規則に関するアイデアはありますか?

0 投票する
1 に答える
1691 参照

c# - アクションメソッドを呼び出すための良い方法

TestActionが「s.Hello」を書き出すようにアイテムを呼び出すにはどうすればよいですか?今は何もしていません。「action=s..」の行を飛び越えます。

または、これを行う別の方法はありますか?コードを返したくないので、Funcの代わりにActionを使用します

Actionを使い始めたばかりです。

0 投票する
2 に答える
4071 参照

c# - LINQ to SQL - 日/週/月ごとのグループ化

私はしばらくの間、これについて頭を悩ませてきました。拡張メソッドを作成して、アイテムのリストを日付でグループ化するとします。可能なグループ化を変更して、結果を日、週、または月でグループ化できるようにします。

以下を思いつきましたが、次のエラーが引き続き発生します。

メソッド 'System.Object DynamicInvoke(System.Object[])' は SQL への変換をサポートしていません

メソッド:

クエリ内での Func の使用がエラーの原因であると想定していますが、このようなコードを生成することは可能ですか?

PS私はまだFuncと式に頭を悩ませようとしています:)