何时声明为struck,何时声明为class?

大侃而谈 2009-08-21 11:00:13
我们都知道,任何情况声明为一个class都是可以的,都能够满足程序的需要。
那为什么还需要声明为struck呢?
那么什么时候才声明为struck呢?

struck无需装箱与拆箱,那么效率上会比class好一些么?

看了不少书与文章,在这一块还不是十分理解,可能还有误解,故请大师详解一下,这一次我真的想把这个问题搞的彻底清楚。
谢谢。
...全文
151 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-08-24
  • 打赏
  • 举报
回复
堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
结构表示如点、矩形和颜色这样的轻量对象,在此情况下,结构的成本较低。
在表现抽象和多级别的对象层次时,类是最好的选择
大多数情况下该类型只是一些数据时,结构时最佳的选择

wuyi8808 2009-08-24
  • 打赏
  • 举报
回复
类似

struct Point
{
public int X;
public int Y;
}


之类的只有字段成员,没有方法成员的轻量级对象可以考虑用 struct 。
微创社(MCC) 2009-08-24
  • 打赏
  • 举报
回复
有了泛型,
可以不考虑struct.
tddlhl 2009-08-24
  • 打赏
  • 举报
回复
在真正的c#程序中,一般都有class代替struct了,顶多用struct定义一些数据结构而已,个人理解
大侃而谈 2009-08-24
  • 打赏
  • 举报
回复
还不太想结贴。想听听更多人的意见或者更详细的理解。
请大家多讲讲。
大侃而谈 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fox000002 的回复:]
可以看看 http://dotnetperls.com/struct-examples
[/Quote]

不得不说,这是我看到的最好的一篇讲解struck最透彻的文章。老外的思考、解决与表达一个问题的方式真的值得我们学习。
同时感谢fox000002推荐这篇文章,我想基本解惑了。
大侃而谈 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pcqpzq 的回复:]
一般用class,是是引用类型的;
如果要考虑效率,就用struc,它是值类型的。
struc编程有很多约束和限制
[/Quote]

看来struck还是有效率的,当所包含的比较简单且追求效率时还是应该使用结构的。
我是这么理解。
fox000002 2009-08-21
  • 打赏
  • 举报
回复
可以看看 http://dotnetperls.com/struct-examples

pcqpzq 2009-08-21
  • 打赏
  • 举报
回复
一般用class,是是引用类型的;
如果要考虑效率,就用struc,它是值类型的。
struc编程有很多约束和限制

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧