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); } } }
Poster un Commentaire
Vous devez vous connecter pour publier un commentaire.