C#中的结构体要使用new来实例化吗?还是直接声明后直接使用?

有何区别?... 有何区别? 展开
 我来答
yuvenken
2008-08-01 · TA获得超过902个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:416万
展开全部
结构无需进行new,就可以直接使用
比如:
MyStruct struct;
struct.Method();
对于类的话,这是错误的

原因如下:
结构为值类型,而new用于为引用类型(类、对象、接口等)分配引用(内存地址),值类型存储于堆中,无需使用new。
比如:
int x;和MyStruct struct;
是一样的道理
这的x、struct都是值类型的

最后结构可以用new 也可以不用new
上面那位是胡说
Jose老师
推荐于2017-11-29
知道答主
回答量:59
采纳率:0%
帮助的人:9.4万
展开全部
声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。

如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盍焱BG
2019-09-27
知道答主
回答量:10
采纳率:0%
帮助的人:2.7万
展开全部
struct属于值类型,可以不用new,如果不new,结构体内的值就都是未赋值状态,需要在使用之前赋值,不然编译器会报错。若new了,结构体会调用无参构造函数,会初始化内部的值,比如int就会初始化为0,现在使用编译器就不会报错了。楼上所谓的“不能new”是完全错误的,写两行代码试试不就知道了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深圳贵森科技
2008-08-01 · 超过37用户采纳过TA的回答
知道答主
回答量:169
采纳率:0%
帮助的人:0
展开全部
结构体不是存在堆中的,所以不用new ,也不能new
结构体是值类型的。不是引用类型的。你要new 就报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式