問題タブ [generic-constraints]

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 に答える
1858 参照

c# - C# の一般的な制約: 構造体の配列

次のような値型 (構造体) の配列である型を含む一般的な制約を作成したいと思います。

または多分

しかし、これは機能しません。System.Array は型制約として使用できないようです。

では、ジェネリック パラメータを構造体の配列に制限するにはどうすればよいでしょうか。

最初の回答後に更新:

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

c# - ジェネリック インターフェイスを実装する型に制約する方法はありますか?

Tインターフェイスを実装する型に制約する方法はありますか? (Fooこの場合)。それ自体のインスタンスを返すように実装するものを強制しICloneable、それが空想する任意の型を強制しないとよいでしょう。

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

c# - C# ジェネリック パラメーターをインターフェイスにキャストする

一般的なパラメーターをインターフェイスにキャストする際に助けが必要です。

次のようなコードを事前に作成しました。

そして、私はこのようなものを実装したい

この時点で解決策が見つからないので、何か役に立ちます、ありがとう。

編集: もともと関数は int を返していましたが、コードの意図した目的と互換性のないより単純なソリューションがあり、関数はジェネリック型を要求するように変更されました。

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

f# - F# の静的メンバーの制約を型拡張で満たすことができないのはなぜですか?

一般的な算術演算を有効にするために、静的メソッドを使用して他のライブラリから型を拡張できるようにしたいと考えています。VectorNたとえば、 Microsoftが新たに作成した SIMD 対応の固定サイズ型を考えてみましょう。彼らは を定義しZero、 を定義し(+)、 を定義しますが、 を定義していないため、それらを(/)使用することはできません。Array.averageDivideByInt

しかし、それは私をコンパイルさせません、不平を言います

F# コンパイラにこの制限があるのはなぜですか?

(編集:本質的に同じ質問が以前に尋ねられました。)

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

.net - .NET ジェネリックの型制約の不等式

2 つの汎用インターフェイスを実装しようとしています。と の両方をITwoWayMapper<T,U>実装することは理にかなっています。だから私がそれをやろうとすると:IOneWayMapper<T,U>IOneWayMapper<U,T>

エラーが発生しますInterface ITwoWayMapper<T,U> cannot implement both IOneWayMapper<T,U> and IOneWayMapper<U,T> because they may unify for some type parameter substitutions。ですから、どのインターフェイスが満たされているかを判断できなかったため、これがあいまいであることは理にかなっていると思います。

したがって、これは私の質問につながります:型制約を使用してこのようなことを言うことは可能ですか?:

0 投票する
0 に答える
49 参照

c# - 同じではない2つの型を持つジェネリッククラス/メソッドを使用する方法はありますか?

ジェネリック クラスを作成し、次のような "where" ステートメントを使用できます。

タイプ「T」が確実に「IDisposable」インターフェイスを実装していることを確認します。

タイプが互いに異なるように制約する2つのタイプを持つジェネリッククラスを作成する方法はありますか?

ありがとう