在我最近做的一个项目中,我在班上创建了一个结构来解决我遇到的一个问题。当一个同事回头看我的时候,他嘲笑地看着这个结构,说“把它变成一个类”。
除了我的之外,我没有任何理由不将它移到其他类中,只有在这个类中需要它,但是这种类型的下降是因为我不能使它成为一个嵌套类吗?
什么时候可以使用结构?
发布于 2009-04-10 19:56:38
您应该查看值类型使用指南:http://msdn.microsoft.com/en-us/library/y23b5415(vs.71).aspx
这篇文章列举了几个要点,但我认为最有价值的几点如下
如果这两个问题的答案都是肯定的,那么您几乎肯定希望使用一个结构。否则我建议你去上课。
使用大量成员的结构存在问题。但我发现,如果我考虑以上两点,在我的价值类型中,我很少有超过建议的成员数目/大小。
发布于 2009-04-10 19:57:10
MSDN有一个很好的准则文件来涵盖结构的使用。概括地说:
否则,使用类。
发布于 2009-04-10 23:46:31
您应该始终使用Class作为首选,仅出于非常具体的原因(正如其他人已经概述的那样)才更改为Structure。
根据“在这个类中只需要它”的程度,您可以通过使用匿名类型完全避免嵌套类型;这只能在单个方法中工作:
Public Class Foo
Public Sub Bar
Dim baz = New With { .Str = "String", .I = 314 }
End Sub
End Class您不能(很容易地-您可以用泛型做一些事情)以类型错误的方式将实例baz移出Sub之外。当然,Object可以保存任何东西,甚至是匿名类型的实例。
https://stackoverflow.com/questions/738685
复制相似问题