.NET中值类型的方法

时间:2013-03-31 17:51:55

标签: c# .net types

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

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

您是否可以提供其他需要在Struct内定义方法的能力的示例?

1 个答案:

答案 0 :(得分:4)

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

该类型上的所有实例方法都旨在通过操纵当前的DateTime来创建新的AddMinutes,或者从当前DateTime获取其他信息(例如{{1} }})。它还有各种静态方法,用于从各种输入创建新实例(例如IsDaylightSavingsTime)或通常操纵FromBinary值(例如DateTime

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