C#中的嵌套结构是好还是坏

时间:2010-12-17 06:01:23

标签: c# struct

我已经养成了在我使用它们的类中声明嵌套的结构的习惯,因为这是我在第一次学习结构时学会使用它们的方法。

如果一个struct几乎就像C#中的一个类,那么我不应该在一个单独的文件中声明结构而不是嵌套在另一个类中吗?

3 个答案:

答案 0 :(得分:5)

如果结构纯粹是该类的实现细节,那么在类中声明结构是非常有意义的。我出于这个原因在其他类中声明了结构(和类!)。

答案 1 :(得分:2)

当嵌套的struct / class仅与外部struct / class一起使用时,嵌套的结构以及嵌套的类是很好的,就像它是struct / class的成员属性的类型或者仅在内部使用

请注意,对于多个嵌套的结构是一个警告标志,您应该考虑改为使用类。正如MSDN(struct)所述。

  

除非您需要引用类型语义,否则系统可以更有效地将小于16字节的类作为结构进行处理。

反过来说,如果你的嵌套结构的结构超过16个字节,你应该考虑使用类,除非你需要传递值语义。

答案 2 :(得分:0)

取决于。

如果他们都有一个共同的主题,也许把它们放在一个恰当命名的文件中是个好主意。否则,如果它们只是一个类的细节,我会将它们放在类的末尾,就在子类之前(如果有的话)。