Les méthodes et classes génériques en C# avec Unity

YouTube player

Les génériques introduisent le concept de paramètres de type dans .NET, ce qui permet de concevoir des classes et des méthodes qui diffèrent la spécification d’un ou plusieurs types jusqu’à ce que la classe ou la méthode soit déclarée et instanciée par le code client. Par exemple, en utilisant un paramètre de type générique T , vous pouvez écrire une seule classe qui peut être utilisée par un autre code client sans impliquer le coût ou le risque des casts ou des opérations de boxing du runtime


Les classes et les méthodes génériques combinent la réutilisabilité, la cohérence des types et l’efficacité d’une façon que leurs équivalents non génériques ne peuvent pas. Les génériques sont plus fréquemment utilisés dans des collections et des méthodes qui agissent sur eux.

Code source du tutoriel

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ClasseGenerique <T>
{
    public T obj1;
    public T obj2;

    public ClasseGenerique(T obj1, T obj2)
    {
        this.obj1 = obj1;
        this.obj2 = obj2;
    }

    public void Swap()
    {
        T temp = obj1;

        obj1 = obj2;
        obj2 = temp;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Demo : MonoBehaviour
{
    public GameObject cube, capsule;
    void Start()
    {
        ClasseGenerique<GameObject> obj = new ClasseGenerique<GameObject>(cube, capsule);

        print("Je suis obj1 :" + obj.obj1);
        print("Je suis obj2 :" + obj.obj2);

        obj.Swap();

        print("Je suis obj1 :" + obj.obj1);
        print("Je suis obj2 :" + obj.obj2);
    }

    void Affiche <T> (T x)
    {
        Debug.Log("Valeur " + x);
        Debug.Log("Type " + x.GetType());
    }

    void Ajoute <T> (T x, T y)
    {
        if(x is int && y is int)
        {
            int nbx = (int)(object)x;
            int nby = (int)(object)y;
            print("Le resultat est " + (nbx + nby));
        }

        if(x is string && y is string)
        {
            print(x + " " + y);
        }
    }
}
A propos de upln 279 Articles
En informatique le problème se situe souvent entre la chaise et le clavier !

Soyez le premier à commenter

Poster un Commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.