我要定义一个新的struct
public struct test{ public string name; public string first_name; public int tel; } 我定义了一个类 public class test1{ public string name; public string first_name; public int tel; /* public test1(string name,string first_name,int tel) { this.name = name; this.first_name = first_name; this.tel = tel; } */ public string Name { get { return name; } set { name = value; } } public string First_name { get{return first_name; } set{first_name=value; } } public int Tel{ get { return tel;} set { tel = value;} } } 我现在要利用这个类和struct 都是数组的声明 就是说: test[] mytest=new test[4];//struct mytest[0].Name="xxx";//这个是ok的 test1[]mytest1=new test1[4]; mytest1[0].Name="xxx";//报错为什么呢 如果我用 for(int i=0;i<4;i++) {mytest1[i]=new test1("xxx","xxx",1);这样就可以为什么呢 } |
解决:
简单的来说就是结构是值类型,而类是引用类型。
所以类需要先分配一个空间才能被使用。
test1[] mytest1 = new test1[4] { new test1(), new test1(), new test1(), new test1() };