C# 结构实例化

看到书上还有很多人都说结构的实例化可以不使用new运算符,但是比如myStructa=newmyStruct(****);这样的代码是正确的,这是为什么?这样不叫实例化吗... 看到书上还有很多人都说结构的实例化可以不使用 new 运算符,但是比如

myStruct a = new myStruct(****);
这样的代码是正确的,这是为什么?这样不叫实例化吗?那类的实例化呢?结构的实例化该怎么写?求指点
展开
 我来答
丶傀儡师苏摩
推荐于2016-03-08 · 超过24用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:51.5万
展开全部
结构是值类型,也就是说你在定义一个结构的时候系统就已经为你定义的对象分配了内存。
关键字new的作用之一是:用于创建对象和调用构造函数。在Struct对象的实例化时使用new关键字是合法的。

书上说结构的实例化可以不使用new运算符,但不是说不能。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
百度网友22b0977
2013-11-06 · TA获得超过278个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:167万
展开全部
我也不是很清楚,只说一些我之前的印象
类是引用类型,如果只定义不实例化,是没法用的。
而结构是值类型,在定义的时候系统就已经分配了内存。
你这个写法我用过,没问题。不过不用NEW这一下,这个结构应该也可以使用。
而类就必须实例化,否则这个类=null,无法使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moweibin1021
2013-11-06 · TA获得超过373个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:48.7万
展开全部
你确定myStruct是定义为结构体,而不是类?
其实用不用new也可以的,不过有一些区别罢了:
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
handangaoyang
2013-11-06 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:928万
展开全部
  1. 结构如果想要使用。是必须实例化的(也就是,结构体内的每个变量都有默认值)。否则编译都无法通过。

  2. 结构不实例化,绝对是错误的啊。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
局部变量
2021-03-17
知道答主
回答量:2
采纳率:0%
帮助的人:1043
展开全部
因为结构是值类型,所以new运算符与类和其他引用类型的工作方式不一样。new运算符并不分配堆中的内存,而是调用相关的构造函数,根据传送给它的参数,初始化所有字段。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式