C#结构体与类的区别

结构体与类有很多相似之处,也是某些题目中容易出现的陷阱,下面根据网上的各种资料总结下它们之间的区别。

  • 结构体中的变量是不能赋初始值的,类的变量成员可以。

  •  主动定义结构体的构造函数不能是无参数的,且必须为结构体中的所有变量赋值。

  •   创建结构体对象可以不使用new关键字.直接声明1个变量就可以.但是这样的话,结构体对象中的字段是没有初始值的。如果用new来创建,则值类型的字段赋值0,给引用类型的字段赋值null。
  • 结构体不能从另外1个结构或者类继承,但是可以实现接口.
  • 结构体是值类型,储存在栈空间中,类是引用类型,储存在堆空间中。
struct Student{
	public int age;
	public string name;
	public Student(int age,string name){
		this.age=age;
		this.name=name;
	}
}
public class Test{
	static void Mian(){
		Student stu1= new Student(18,"小方");
		Student stu2= new Student(24,"小刚");
		stu2=stu1;//在c#中 结构体是值类型,在这里赋值只会赋值其中变量的值
		stu1.age=30;
		stu1.name="小燕";
		Console.WriteLine(stu2.age);
		Console.WriteLine(st2.name);
	}
}

上面代码的输出是18 小方,如果换成类则输出应该是30 小燕。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值