C#:struct与class

  • struct
    1:传值和引用; 基本数据类型为传值,复杂的类传引用;
    2: 不是基本数据类型,又希望方便的传值 — struct
    3: 结构体有数据成员,成员函数;
    4: 不能重载默认的构造函数,默认构造函数把所有的初始化为0;
    5: 可以重载不同参数的构造函数;
    6: 结构体的变量定义在哪里,那么内存就分配在哪里;
    7: 结构体的new 不额外的创建内存,使用=左边的内存;
    8: 结构体赋值和传参,内存都拷贝一份;
    9: 结构体参数传引用 ref修饰;

  • class与struct
    1:class实例的赋值,赋的是引用地址,struct实例的赋值,赋的是值(内存的拷贝)
    2:class作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值,除非你使用ref;
    4: new 操作符,class是在堆上分内存配,而结构体是用变量的内存,结构体定义在哪里,内存就分配在哪里;

结构体,重载默认的构造函数,必须要给每个数据成员赋值。
绝对不能重载结构默认的构造函数;
结构体不允许使用没有初始化的数据成员;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值