C# NET中值类型的方法

C# NET中值类型的方法,c#,.net,types,C#,.net,Types,我正在阅读Jeffrey Richter的“CLR via C#”,他建议永远不要在值类型中定义用于更改其行为的方法,因为值类型应该是不变的(因为装箱/拆箱费用以及有时不可预测的行为) 那么,我们可以在自定义值类型中定义只用于显示其状态的方法 你能给出任何其他需要在结构中定义方法的例子吗?我能想到的最好的例子是结构 类型上的所有实例方法都设计为通过操作当前的DateTime(例如AddMinutes)或从当前的DateTime(例如IsDaylightSavingsTime)获取附加信息来创建新

我正在阅读Jeffrey Richter的“CLR via C#”,他建议永远不要在值类型中定义用于更改其行为的方法,因为值类型应该是不变的(因为装箱/拆箱费用以及有时不可预测的行为)

那么,我们可以在自定义值类型中定义只用于显示其状态的方法


你能给出任何其他需要在
结构中定义方法的例子吗?

我能想到的最好的例子是结构

类型上的所有实例方法都设计为通过操作当前的
DateTime
(例如
AddMinutes
)或从当前的
DateTime
(例如
IsDaylightSavingsTime
)获取附加信息来创建新的
DateTime
)。它还具有多种静态方法,用于从各种输入创建新实例(例如从二进制文件创建新实例),或通常操作日期时间值(例如比较)


没有方法可以真正修改当前实例。

我能想到的最好的例子是struct

类型上的所有实例方法都设计为通过操作当前的
DateTime
(例如
AddMinutes
)或从当前的
DateTime
(例如
IsDaylightSavingsTime
)获取附加信息来创建新的
DateTime
)。它还具有多种静态方法,用于从各种输入创建新实例(例如从二进制文件创建新实例),或通常操作日期时间值(例如比较)


没有任何方法可以修改当前实例。

DateTime呢?@Vermanus ha是的,在我写完答案后就看到了。我已经删除了我的评论,因为它是错误的)现在我看到DateTime呢?@Vermanus ha是的,在我写完我的答案后看到了这个。我已经删除了我的评论,因为它是错误的)现在我明白了