10
votes

Instanciez le type générique en classe C #

question assez basique en c #, xxx

Comment puis-je faire cela?


1 commentaires

Un suivi de quelqu'un qui s'intéresse à cela. C'est une différence majeure entre les génériques C # génériques et les modèles C ++, nous devons imposer des contraintes sur des types pour le compilateur pour reconnaître les propriétés du type. Veuillez lire ce MSDN.MicRosoft.com/en- US / Bibliothèque / ...


3 Réponses :


23
votes

Si vous souhaitez créer votre propre instance de t, alors vous avez besoin de définir une contrainte nouvelle () xxx

si vous voulez passer dans l'obj alors Vous devez le laisser dans le constructeur xxx


1 commentaires

La réponse est exactement ce que je cherchais aussi! Merci!



0
votes

Vous pouvez utiliser le neuf Contrainte Dans votre définition de classe générique Pour vous assurer que T a un constructeur par défaut que vous pouvez appeler. Les contraintes vous permettent d'informer le compilateur de certains comportements (capacités) que le paramètre générique doit adhérer à.

class Data<T> where T : new()
{
    T obj;

    public Data()
    {
        obj = new T();
    }
}


0 commentaires