Maison > développement back-end > C++ > Les méthodes génériques C# peuvent-elles contraindre les paramètres de type à des constructeurs spécifiques ?

Les méthodes génériques C# peuvent-elles contraindre les paramètres de type à des constructeurs spécifiques ?

Patricia Arquette
Libérer: 2025-01-14 16:01:44
original
904 Les gens l'ont consulté

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

Contraintes de constructeur avec spécification de paramètres en C#

En C#, les méthodes génériques permettent d'imposer des contraintes sur les paramètres de type. Par exemple, le code suivant montre une contrainte qui nécessite que le type de paramètre T ait un constructeur sans paramètre :

public class A {

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

}
Copier après la connexion

Cela soulève la question : peut-on affiner les contraintes et spécifier que T doit avoir un constructeur qui accepte un argument float[,] ? Malheureusement, la tentative suivante ne parvient pas à compiler :

public class A {

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

}
Copier après la connexion

Solution

Comme cette contrainte ne peut pas être utilisée, nous pouvons adopter une solution de contournement et utiliser un délégué pour initialiser un objet de type T :

public class A {

    public static void Method<T>(T a, Func<float[,], T> creator) {
        //...do something...
    }

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal