代码之家  ›  专栏  ›  技术社区  ›  Chaowlert Chaisrichalermpol

超过16字节的结构的最佳解决方案

  •  3
  • Chaowlert Chaisrichalermpol  · 技术社区  · 17 年前

    我有一个类型,我认为它是结构。

    • 它代表单个值

    但问题是,它有6个int字段。

    1. 继续使用struct?
    2. 换班?

    编辑

    包含6个整型字段的结构的大小是24字节,这对于传递来说是巨大的。

    7 回复  |  直到 17 年前
        1
  •  5
  •   vboctor    17 年前

    这取决于你将如何使用它?

    1. 你打算分配大量的信息还是大量地传递信息?
    2. 它会被第三方代码使用吗?在这种情况下,类通常为您提供更大的灵活性。
    3. 你想要结构还是类语义?例如,不可为空?

    仅凭你在问题中提供的信息很难回答。

        2
  •  1
  •   Dana Robinson    17 年前

    小心拳击。如果您的结构将被一个需要对象的方法使用,它将被强制为一个对象,并且您将受到潜在的性能影响。

    这里有一个 reference

    使用六个整数(#3)的数组可能会使代码更难阅读。对于每个int使用描述性标识符的类会更好。

        3
  •  0
  •   L. Cornelius Dol    17 年前

        4
  •  0
  •   Dmitri Nesteruk    17 年前

    来一杯怎么样 WriteOnce<int[]>

        5
  •  0
  •   pauldoo    16 年前

    我建议编写一个小基准来衡量不同选项的性能,这是唯一可以确定的方法。你可能会对结果感到惊讶(我经常是这样)。

    (我假设您关心的是性能。)

        6
  •  0
  •   supercat    14 年前

    至于运行时性能,您可以获得的最佳性能通常是通过引用传递结构。按值传递结构将需要复制它们,这对于大于16字节的结构可能会很昂贵(.net包括对16字节或更小结构的优化),但按引用传递值类型的成本是相同的,无论是1字节还是16000字节。

        7
  •  -1
  •   Chris Nava    17 年前

    推荐文章