gpt4 book ai didi

c# - 通过 C# 中的索引号调用类中所有实例的属性?

转载 作者:行者123 更新时间:2023-11-30 13:35:25 26 4
gpt4 key购买 nike

在 C# 中,是否可以从一个类创建多个对象并通过索引号引用每个实例?

这是我正在尝试做的一个例子:

public class movie
{

public string name;

}
class Program
{
static void Main(string[] args)
{
movie[] myMovie = new movie[3];

myMovie[0].name = "Harry Potter";
myMovie[1].name = "Lord of The Rings";
myMovie[2].name = "Star Wars";

for (int i = 0; i < 3; i++)
{

Console.WriteLine(myMovie[i].name);

}
}
}

最佳答案

你快到了。

当您执行 movie[] myMovie = new movie[3] 时,您正确地创建了一个包含 3 个 movie 元素的数组,但是这些元素中的每一个都将是null 默认情况下。这意味着如果您尝试执行以下操作,您将得到一个 NullReferenceException myMovie[0].name = "..."

您需要实例化三个单独的 movie 实例,并将它们分配给数组中的适当元素。您可以手动执行此操作:

movie[] myMovie = new movie[3];
myMovie[0] = new movie();
myMovie[1] = new movie();
myMovie[2] = new movie();

但是,for 循环是一种更简单的方法:

movie[] myMovie = new movie[3];
for (int i = 0; i < movie.Length; i++)
{
myMovie[i] = new movie();
}

或者,您可以实例化您的 movie 实例,给它们命名,然后像这样一次性将它们添加到您的数组中:

movie[] myMovie = new movie[]
{
new movie()
{
name = "Harry Potter",
},
new movie()
{
name = "Lord of the Rings",
},
new movie()
{
name = "Star Wars",
}
};

这使用 object initializers 的语法和 array initializers .

关于c# - 通过 C# 中的索引号调用类中所有实例的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58589901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com