ホームページ >バックエンド開発 >C++ >C#ジェネリックメソッドの制約は、タイプの引数を特定の数値タイプに制限できますか?

C#ジェネリックメソッドの制約は、タイプの引数を特定の数値タイプに制限できますか?

Susan Sarandon
Susan Sarandonオリジナル
2025-02-01 23:31:11322ブラウズ

Can C# Generic Method Constraints Restrict Type Arguments to Specific Numeric Types?

c#一般的なメソッド制約は、数値タイプにのみ制限できますか?

はじめに

FREESにより、プログラマーは複数のデータ型で動作できるタイプを定義できます。ただし、一般的なタイプのタイプを制限する必要がある場合があります。この質問では、一般的なパラメーターを特定の値のみに制限できる方法があるかどうかを調査します。 ジェネリックタイプの制限の制約

c#

キーワードにより、開発者は一般的なパラメーターの制約を指定できます。制約を使用して、型パラメーターが特定のインターフェイスを実装するか、特定のベースクラスを継承することを確認できます。 既存の数値インターフェイス

where残念ながら、C#は、INT16、INT32、INT64、UINT16、UINT32、およびUINT64タイプを専門とするインターフェイスを提供しません。したがって、キーワードを直接使用して、一般的なパラメーターをこれらの特定のタイプに制限することはできません。

代替方法

代替案として、次の方法を検討してください。

where

インターフェイス

:Net 7は、インターフェイスを導入しました。このインターフェイスは、すべてのバイナリ整数型を使用して、型パラメーターを整数型に制限できることを示しています。

工場モード

:Anders Hejlsbergが推奨するように、工場モードを使用して、さまざまな数値タイプをサポートするマトリックスを作成できます。この方法では、a

インターフェイスが定義され、マトリックスはこのインターフェイスのインスタンスをパラメーターとして使用します。
  • 戦略クラス:パブリックインターフェイスの実装を使用し、特定の実装を提供する戦略的クラスを提供することは、もう1つの選択肢です。これらの戦略は、さまざまな数値タイプのサポートを可能にするために、マトリックスに渡すことができます。 IBinaryInteger System.Numerics結論IBinaryInteger<T>
  • C#は、制約による特定の値タイプとしての一般的なパラメーターの制限を直接サポートしていませんが、インターフェイス、工場モード、戦略の代替方法を使用して、必要な関数を実現できます。

以上がC#ジェネリックメソッドの制約は、タイプの引数を特定の数値タイプに制限できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。