【问题标题】:.NET Choosing between Structures and Classes [duplicate].NET 在结构和类之间进行选择 [重复]
【发布时间】:2010-10-14 21:13:48
【问题描述】:

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

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

我已经阅读了一些背景知识并了解了两者之间的区别,即结构存储在堆栈上,类存储在堆上等。但是还没有找到一些明确的例子,其中一个比另一个更有优势。

非常感谢

【问题讨论】:

标签: .net


【解决方案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】:

    我更喜欢类。

    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】:

      我为你找到了这个页面。它解释了在哪里使用其中一个或另一个,每个的优点和缺点。

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

      问候!!!

      【讨论】:

        【解决方案4】:

        非常基本的指南,甚至不是 .NET 特定的:

        除了需要非常小、非常简单的容器外,所有东西都使用 CLASS。 如果你不需要属性和函数,你应该使用一个类。

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

        【讨论】:

          【解决方案5】:

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

          MSDN 有答案:Choosing Between Classes and Structures.

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

          不要定义结构,除非 类型具有以下所有内容 特点:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-08-13
            • 1970-01-01
            • 2011-04-23
            • 2012-01-16
            • 1970-01-01
            • 2012-04-10
            相关资源
            最近更新 更多