2009-07-17 14 views
5

タイプパラメータを使用し、そのパラメータを数値タイプに、またはより一般的にインクリメント演算子++を適用できる任意のタイプに制限するジェネリッククラスを作成します。タイプパラメータが制限された汎用クラス

私は構造体に制限するために以下を行うことができますが、明示的に数値型ではなく++演算子がサポートされていない構造体が存在することがわかります。私はこの中にC#

class Example<T> where T : struct 
{ 
    //Implementation detail 
} 
+2

これはよく要求される機能です。これを実装するには、言語とランタイムの両方を変更する必要があります。仮説的な将来のバージョンでは可能ですが、最優先事項ではありません。 –

+0

[[数値型と一致させる一般的な制約]]の重複が可能です(http://stackoverflow.com/questions/3329576/generic-constraint-to-match-numeric-types) – nawfal

答えて

8

を行うことができます残念ながら、これは(hereを参照してください。)ことはできませんあなただけのタイプを制約することができます特定のインターフェイスを実装したり

  • 特定のクラスから派生

    • classまたはstruct
    • は、パラメータなしのコンストラクタを持つこと

    特定の演算子を持つ型を制約することは非常に要求されている機能ですが、C#4でもそうは思わないでしょう。

  • 関連する問題