Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过对象数组访问对象_C#_Object - Fatal编程技术网

C# 通过对象数组访问对象

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 =

我想学习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 = "";
    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 ); 
}