J'ai trouvé beaucoup de sujets similaires sur ce thème, mais aucun ne répond directement à ma question. Je réalise un jeu qui consiste à placer différents types de pièces. J'ai une classe Room, puis plusieurs salles qui en héritent, par exemple Bedroom, Canteen, etc.
Chaque pièce dispose de certains paramètres statiques pour définir ses attributs. Par exemple :
public class Room : WorldEntity
{
public static string Name = "Room";
public static uint MinHeight = 0;
public static uint MinWidth = 0;
//...
}
public class Bedroom : Room
{
new public static string Name = "Bedroom";
new public static uint MinHeight = 4;
new public static uint MinWidth = 4;
//...
}
Lors de la création de la pièce, je passe d'abord par le type de la pièce requise, par ex.
public static void PlaceRoom(Type T){//begin room creation process}
Ce que je veux savoir, c'est comment obtenir les attributs de T à partir de ma fonction PlaceRoom ? Par exemple, comment puis-je obtenir T.MinHeight (qui renvoie 4 lorsque T est de type Bedroom) ? Ou existe-t-il une meilleure façon de procéder ?
Je n'avais pas l'intention d'initialiser ma classe T (où T : Room) avant plus tard, c'est pourquoi les membres étaient statiques et j'essaie d'utiliser des génériques.