C#中的结构体要使用new来实例化吗?
2024-10-20 16:37:14
声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。 如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
结构类型使用new不会分配托管堆分配内存而是调用构造函数初始化字段。结构的构造函数要么是有参数的,不可能是无参数,应为无参数是系统自己隐式添加的,就算有另外的构造函数,如果你显示的声明一个无参数的构造函数在结构里,将导致编译错误。 结构体如果不用new初始化,也可以,但是在其使用前必须手动初始化他的每一个成员,否则编译器将报错。用new初始化,可自动将其中的每一个成员都置为零值。
最新文章
- Linux更改主机名的最简单方法
- 如何对ZBrush中面部进行快速布线
- 数据库SQL Server DAC 导入导出数据到SQL Azure问题
- 转载C#函数式程序设计初探——基础理论篇
- 解决Dagger2和butterknife冲突
- java实战之数组工具集
- shell中的IFS详解
- OJ双人赛:程序设计竞赛的新尝试
- php 设计模式系列(一)
- 2016 UESTC Training for Dynamic Programming
- .NET十年回顾
- Legal or Not(拓扑排序判环)
- 【网络流】【BZOJ1070】【SCOI2007】修车
- RabbitMQ基础系列--客户端开发
- docker的4种网络模型
- Spring的IOC/DI使用到的技术
- (4.25)格式化T-SQL工具
- Photoshop Keynote
- windows2003两台服务器,局域网之间不能互相访问
- 微软的开源Sonar工具测试网站的性能和安全性
热门文章
- 微信公众号验证TOKEN
- 细说后端模板渲染、客户端渲染、node 中间层、服务器端渲染(ssr)
- .gitignore文件配置:keil工程文件类型【转】
- Makefile中的$(@:_config=)什么意思?【转】
- matlab高亮显示选中的变量
- HDU 4405 Aeroplane chess:期望dp
- SpringBoot_Exception_02_Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.6.RELEASE:run
- Thread,Service和AsyncTask
- Java之类加载器(Class Loader)
- PowerDesigner根据SQL文件生成PDM数据字典