声明一个新的类元素

时间:2016-08-30 18:01:01

标签: c#

我对这段代码有些问题。我将不胜感激。

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时,betas数组没有alpha_array元素。怎么做,我自己也找不到。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您的代码中有一些错误:

如果您未指定访问修饰符,则所有字段均为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的实例分配给Array Alpha

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
}