struct和类的问题

 
我要定义一个新的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() };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值