我是C#的新手,刚从DELPHI转过来现在有一个问题下面是伪代码//申请类变量
类A[] CA=new 类A[128];
类A CB=new 类A();//实例化类数组变量
for(int i=0;i<128;i++)
CA[i]=new 类A();CB.Num=1;//问题来了
for(int j=0;j<128;j++)
{
CA[j]=CB;
CA[j].Num=j;
}通过上面那个循环,CA这整个数组的Num都是一样的如果不要CA[j]=CB;就没事请问是什么原因?因为我的类的成员变量很多,需要整个类一起赋值过去
类A[] CA=new 类A[128];
类A CB=new 类A();//实例化类数组变量
for(int i=0;i<128;i++)
CA[i]=new 类A();CB.Num=1;//问题来了
for(int j=0;j<128;j++)
{
CA[j]=CB;
CA[j].Num=j;
}通过上面那个循环,CA这整个数组的Num都是一样的如果不要CA[j]=CB;就没事请问是什么原因?因为我的类的成员变量很多,需要整个类一起赋值过去
for(int i=0;i<128;i++)
{
CA[i]=new 类A();
CA[i].Num = i;
}
或第二个循环改为
for(int j=0;j<128;j++)
{
//CA[j]=CB;
CA[j].Num=j;
}
public class 类名: ICloneable
{
public object Clone()
{
return this.MemberwiseClone();
}
}调用类变量A = 类变量B.Clone() as 类名;