C# 通过对象数组访问对象
我想学习atm课程,以下是我的想法: 类级别以创建级别。这个类有一个对象数组,它用另一个类rooms(raeume)填充自己。现在,我想在插入对象阵列后,从房间访问对象阵列中的对象。以下是我要键入的内容:C# 通过对象数组访问对象,c#,object,C#,Object,我想学习atm课程,以下是我的想法: 类级别以创建级别。这个类有一个对象数组,它用另一个类rooms(raeume)填充自己。现在,我想在插入对象阵列后,从房间访问对象阵列中的对象。以下是我要键入的内容: wohnung.rooms[i].raumname.toString(); 这是两门课 class raum { static object[] o_nebenraum = new object[3]; //N-O-S-W static string s_raumname =
wohnung.rooms[i].raumname.toString();
这是两门课
class raum
{
static object[] o_nebenraum = new object[3]; //N-O-S-W
static string s_raumname = "";
public object[] nebenraume
{
get
{
return o_nebenraum;
}
set
{
o_nebenraum = value;
}
}
public string raumname
{
get
{
return s_raumname;
}
set
{
s_raumname = value;
}
}
}
class level
{
static object[] o_rooms = new object[100];
public object[] rooms
{
get
{
return o_rooms;
}
set
{
o_rooms = value;
}
}
}
这是我如何安排一切的
level wohnung = new level();
raum keller = new raum();
raum wohnzimmer = new raum();
raum kueche = new raum();
raum schlafzimmer = new raum();
wohnung.rooms[0] = keller;
wohnung.rooms[1] = wohnzimmer;
wohnung.rooms[2] = kueche;
wohnung.rooms[3] = schlafzimmer;
keller.raumname = "Keller";
wohnzimmer.raumname = "Wohnzimmer";
kueche.raumname = "Küche";
schlafzimmer.raumname = "Schlafzimmer";
for (uint i = 0; i < 3; i++)
{
Console.WriteLine("Wohnung beinhaltet jetzt " + *MISSING CODE PART, I WANT TO GET THE .raumname out of the object array from wohnung.room*);
}
Console.ReadKey();
level wohnung=new level();
劳姆·凯勒=新劳姆();
raum wohnzimmer=新的raum();
raum kueche=新的raum();
raum schlafzimmer=新raum();
wohnung.rooms[0]=keller;
wohnung.rooms[1]=wohnzimmer;
wohnung.rooms[2]=kueche;
wohnung.rooms[3]=schlafzimmer;
keller.raumname=“keller”;
wohnzimmer.raumname=“wohnzimmer”;
kueche.raumname=“Küche”;
schlafzimmer.raumname=“schlafzimmer”;
对于(uint i=0;i<3;i++)
{
WriteLine(“Wohnung beinhalte jetzt”+*缺少代码部分,我想从Wohnung.room*的对象数组中获取.raumname);
}
Console.ReadKey();
您必须使用泛型类型列表list
()而不是数组,在这种情况下,您将拥有对类型列表元素的索引访问权限
因此,不是:
static object[] o_rooms = new object[100];
public object[] rooms
使用:
静态IList o_房间=新列表(100);
公共厕所
您必须使用泛型类型列表list
()而不是数组,在这种情况下,您将拥有对类型列表元素的索引访问权限
因此,不是:
static object[] o_rooms = new object[100];
public object[] rooms
使用:
静态IList o_房间=新列表(100);
公共厕所
试试这个(在for循环中):
您最好使用泛型,尽管在这种情况下,类级别现在看起来像:
class level
{
static List<raum> o_rooms = new List<raum>();
public List<raum> rooms
{
get { return o_rooms; }
set { o_rooms = value; }
}
}
试试这个(在for循环中):
您最好使用泛型,尽管在这种情况下,类级别现在看起来像:
class level
{
static List<raum> o_rooms = new List<raum>();
public List<raum> rooms
{
get { return o_rooms; }
set { o_rooms = value; }
}
}
为什么
s_raumname
,o_nebenraum
和o_房间
是静态的?为什么o_nebenraum
的类型是object[]
而不是raum[]
?为什么要使用数组而不是列表?你应该在任何地方访问它们,o_nebenraum现在是raum[],我现在也使用列表,如下所述:)如果s_raumname
是静态的,这将导致一种“奇怪”行为,所有房间都将具有相同的名称(最后一个指定的房间-在本例中为“Schlafzimmer”),你是对的,这就是为什么它不再是静态的为什么s_raumname
,o_nebenraum
和o_rooms
是静态的?为什么o_nebenraum
的类型是object[]
而不是raum[]
?为什么要使用数组而不是列表?你应该在任何地方访问它们,o_nebenraum现在是raum[],我现在也使用列表,如下所述:)如果s_raumname
是静态的,这将导致一种“奇怪”行为,所有房间都将具有相同的名称(最后一个指定的房间-在本例中为“Schlafzimmer”),你是对的,这就是为什么它不再是静态的,这对我来说是最简单的方法,目前100%可以理解:)如果列出所有房间
是静态的,那么级别
的每个实例都会有相同的房间。顺便说一句:你的公共财产没有名字……对我来说最简单的方法,目前100%可以理解:)如果列出房间
是静态的,那么级别
的每个实例都会有相同的房间。顺便说一下:你的公共财产没有名字。。。
foreach(raum room in wohnung.rooms)
{
Console.WriteLine("Wohnung beinhaltet jetzt " + room.raumname );
}