ホームページ > バックエンド開発 > C++ > C# のジェネリック メソッドは型パラメーターを特定のコンストラクターに制限できますか?

C# のジェネリック メソッドは型パラメーターを特定のコンストラクターに制限できますか?

Patricia Arquette
リリース: 2025-01-14 16:01:44
オリジナル
842 人が閲覧しました

Can C# Generic Methods Constrain Type Parameters to Specific Constructors?

C# でのパラメーター指定によるコンストラクター制約

C# では、ジェネリック メソッドを使用して型パラメーターに制約を課すことができます。たとえば、次のコードは、パラメーター型 T がパラメーターなしのコンストラクターを持つことを必要とする制約を示しています。

<code class="language-csharp">public class A {

    public static T Method<T>(T a) where T : new() {
        //...do something...
        return new T();
    }

}</code>
ログイン後にコピー
ここで疑問が生じます。制約を改良して、T が float[,] 引数を受け入れるコンストラクターを持つように指定できるでしょうか?残念ながら、次の試みはコンパイルに失敗します:

<code class="language-csharp">public class A {

    public static T Method<T>(T a) where T : new(float[,] u) {
        //...do something...
        return new T(new float[0,0]);
    }

}</code>
ログイン後にコピー

解決策

この制約は使用できないため、回避策を採用し、デリゲートを使用して型 T のオブジェクトを初期化できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート