1

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

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

你能举出其他Struct需要在 a 中定义方法的例子吗?

4

1 回答 1

4

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

DateTime类型上的所有实例方法都旨在通过操作当前方法(例如)或从当前方法(例如)中AddMinutes获取附加信息来创建新方法。它还具有多种静态方法,用于从各种输入(例如)或一般操作值(例如)创建新实例DateTimeIsDaylightSavingsTimeFromBinaryDateTimeCompare

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

于 2013-03-31T17:58:56.827 回答