C#.net中类与结构的区别[1]

 我来答
机器1718
2022-11-10 · TA获得超过6757个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:154万
展开全部

   一.类与结构的示例比较

  结构示例

public struct Person { string Name; int height; int weight public bool overWeight() { //implement something } } 类示例 public class TestTime { int hours; int minutes; int seconds; public void passtime() { //implementation of behavior } }

  调用过程

public class Test { public static ovid Main { Person Myperson=new Person //声明结构 TestTime Mytime=New TestTime //声明类 } }

  从上面的例子中我们可以看到 类的声明和结构的声明非常类似 只是限定符后面是 struct 还是 class 的区别 而且使用时 定义新的结构和定义新的类的方法也非常类似 那么类和结构的具体区别是什么呢?

   二 类与结构的差别

   值类型与引用类型

  结构是值类型 值类型在堆栈上分配地址 所有的基类型都是结构类型 例如 int 对应System int 结构 string 对应 system string 结构 通过使用结构可以创建更多的值类型

  类是引用类型 引用类型在堆上分配地弊物址

  堆栈的执行效率要比堆的执行效率高 可是堆栈的资源有限 不适合处樱卜码理大的逻辑复杂的对象 所以结构处理作为基类型对待的小对象 而类处理某个商业逻辑

  因为结构是值类型所以结构之间的赋值可以创建新的结构 而类是引用类型 类之间的赋值只是复制引用

  注

   虽然结构与类的类型不一样 可是他们的基类型都是对象(object) c#中所有类型的基类型都是object    虽然结构的初始化也使用了New 操作符可是结构对象依然分配在堆栈脊哪上而不是堆上 如果不使用 新建 (new) 那么在初始化所有字段之前 字段将保持未赋值状态 且对象不可用

lishixinzhi/Article/program/net/201311/15075

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式