声明一个新的类元素

本文关键字:元素 一个 声明 | 更新日期: 2023-09-27 18:04:41

我对这段代码有一些问题。我很感激你的帮助。

class Alpha{
  string Name;
  public Alpha(string name){
    this.Name = name;
  }
}
class Beta{
  Alpha[] alpha_array;
  string Name;
  public Beta(Alpha[] alpha_array, string name){
    this.Alpha_array = alpha_array;
    this.Name = name;
  }
}
static void Main(){
  Beta betas = new Beta[10];
  for(int i = 0; i < betas.Length; i++){
    betas[i] = new Beta(new Alpha[1], "Bob");
    betas[i].alpha_array = new Alpha("George");
    Console.WriteLine(betas[i].alpha_array.Name);
  }
}

这里有什么问题?我将使用这段代码,但是当我尝试访问alpha_array时,beta数组没有alpha_array元素。如何做这件事,我自己想不出来。

谢谢你的帮助

声明一个新的类元素

你的代码中有几个错误:

如果没有指定访问修饰符,所有字段都是private。你应该把它们变成public。例子:

class Alpha{
  public string Name;
  public Alpha(string name){
    this.Name = name;
  }
}
class Beta{
  public Alpha[] alpha_array;
  public string Name;
  public Beta(Alpha[] alpha_array, string name){
    this.Alpha_array = alpha_array;
    this.Name = name;
  }
}

您正在尝试将Alpha的实例分配给AlphaArray:

betas[i].alpha_array = new Alpha("George");

我认为你想要的是:

for(int i = 0; i < betas.Length; i++){
    betas[i] = new Beta(new Alpha[]{ new Alpha("George")}, "Bob");
    Console.WriteLine(betas[i].alpha_array[0].Name); // prints George
}