我对这段代码有些问题。我将不胜感激。
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元素。怎么做,我自己也找不到。
感谢您的帮助。
答案 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
}