.NET在结构和类之间进行选择

时间:2009-03-23 00:03:10

标签: .net

重复: When should I use a structure instead of a class?

只是想知道是否有人可以提供一些建议或示例,说明何时最好在.NET中使用类结构,反之亦然

我做了一些背景阅读并理解了两者之间的差异,即结构存储在堆栈上,堆上的类等。但是没有能够找到一些明显的例子,其中一个可以提供另一个的好处。

非常感谢

5 个答案:

答案 0 :(得分:4)

引用a good answer to the same questionWhen should I use a struct instead of a class?):

  

MSDN的答案是:Choosing Between Classes and Structures.

     

基本上,该页面为您提供了一个   4项清单并说要使用a   除非你的类型满足所有类别   标准。

     

除非是,否则不要定义结构   type具有以下所有内容   特性:

     
      
  • 它逻辑上表示单个值,类似于原始类型   (整数,双精度等)。
  •   
  • 实例大小小于16个字节。
  •   
  • 这是不可改变的。
  •   
  • 不必频繁装箱。
  •   

答案 1 :(得分:1)

使用class,除非您有非常具体的理由使用struct。有关具体原因,请参阅Questions about Structs

修改struct优于class的一个可能优势是您不能拥有null个实例。见Is there a way to require that an argument provided to a method is not null?

答案 2 :(得分:0)

我更喜欢课程。

Structure TestStruct
    Dim Name as String
End Structure

Dim x as TestStruct

If x Is Nothing Then 
'ALWAYS returns false. A class would return true. Nullability, baby.

答案 3 :(得分:0)

我找到了这个页面。它解释了在哪里使用其中一个,每个的好处和缺点。

http://www.jaggersoft.com/pubs/StructsVsClasses.htm

问候!!!

答案 4 :(得分:0)

非常基本的准则,甚至不是.NET特定的:

除非您需要非常小巧,非常简单的容器,否则请使用CLASS。 如果你不想要属性或函数,你应该使用一个类。

我认为结构的一个很好的例子就是你需要创建一个项目数组,但这些项目是int和string的“对”。 一些基本的东西