c# - 使用更多结构?

标签 c# .net class struct

过去几天有几个关于正确使用null的问题;这是三个(一个是我的):

在阅读和思考这个问题时,我想到了:为什么不使用 struct而不是 class ? (然后我阅读了很多关于此的问题。)

struct 的一个好处(在此上下文中)它不能为 null,因此永远不需要检查 null .作为一个额外的好处,如果你真的想要一个 null struct您也可以使用一些额外的语法( T? )和 Nullable<> 来做到这一点类型。 (太糟糕了,引用类型也不能像这样工作!)

但是struct s 按值传递,这会降低性能。好吧,首先,代码应该是“正确的”(无论 that 可能意味着什么)然后是快速的。但是,有几种方法可以避免真正重要的开销:ref参数,可空参数,放置 struct在其他一些类中,说 List<> .

是的,struct s,你不能创建类层次结构,而是“继承被过度使用”。并且您可以实现接口(interface)。

使用更多struct -based 对象可以使编写多线程代码更容易。

struct 是否还有其他不常被提及的优点?秒?这些考虑中的任何一个是否接近于对 class 产生影响?巨大的“领先优势”?

最佳答案

我认为你应该坚持使用 Null Object ,像这样有创意只会让你陷入麻烦,并且可能使代码更难维护。

关于c# - 使用更多结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647790/

相关文章:

c++ - 如何将 vector 的单元格传递给 C++ 中的函数?

c# - 复选框容易受到 sql 注入(inject)的攻击吗?

c# - 在 int[] 中找到最大总和范围的最快方法

c# - 在不破坏封装的情况下公开对象数据

.net - 无法在IIS 7.5上使用Enable32Mode加载32位dll

c++ - 返回私有(private)类成员是否比使用结构并直接访问该变量慢?

c# - 在 C# 中使用 SmtpClient 发送电子邮件时出现问题

c# - DataGridView 列中的计算

.net - 是否可以从 .NET 中的全局键盘 Hook 中确定当前用户

swift - 在 swift 中使用另一个类初始值设定项中的类(或实例)属性