Ich habe eine Klasse mit dem Namen Gebäude erstellt, die eine Reihe verschiedener Arten von Räumen enthält, obwohl ich momentan nur eine Klasse habe. Ich versuche nun, auf eine Eigenschaft in einer Raumtypklasse zuzugreifen, aber aus irgendeinem Grund gibt es mir keinen Zugriff darauf.Zugriff auf öffentliche Klasseneigenschaft nicht möglich
Das ist meine Klasse:
public abstract class Building {
public RoomType roomType { get; private set; }
public RoomManager roomManager {get; private set;}
public int x {get; private set;}
public int y {get; private set;}
public Building(int x, int y, RoomManager rm, RoomType rT){
SetPosition(x,y);
roomManager = rm;
roomType = rT;
}
void SetPosition(int tx, int ty){
x = tx;
y = ty;
}
}
public class KitchenRoom : Building {
public Kitchen reference {get; private set;}
public KitchenRoom(int x, int y, RoomManager rM, Kitchen kitchen) : base(x,y,rM,RoomType.Kitchen){
reference = elevator;
}
}
Also ich wie so eine neue KitchenRoom erstellen: Ich habe
//Buildings = List<Building>();
//I use type Building because there will be more than just KitchenRoom in this list eventually.
buildings.Add(new KitchenRoom(x,y,go.getComponent<RoomManager>(),go.GetComponent<Kitchen>()));
So dass ich jetzt den Wert zugreifen möchten reference
so diese:
for(int i=0;i<buildings.Count; i++){
if(buildings[i] is KitchenRoom){
buildings[i].reference.someMethod(); // access to reference non existant
}
}
So scheint ich keinen Zugriff auf reference
zu haben. Aber ich weiß nicht, was ich falsch gemacht habe.
Secondary minor Frage:
mir gesagt wurde, dass die Laufzeittypprüfungen aka mit is KitchenRoom
ist keine gute Idee? Aber ich weiß nicht, wie ich das sonst tun soll. Gibt es da eine Wahrheit, sind das die besseren Implementierungen?
Es gibt keine Klassenzimmer im Code genannt ist ..... – Programmer
Leider i Gebäude nicht Zimmer gemeint :) bearbeitet. – Sir
Ok. Juust hat festgestellt, dass du es noch redigierst – Programmer