C#学习教程:在运行时使对象不可变分享


在运行时使对象不可变

是否有任何方法(利用我希望的reflection),我可以使实例化对象与其所有公共属性一起不可变? 我有一个来自别人的代码库(没有可用的源代码)的类,我需要利用它,如果任何代码片段在实例化之后尝试调用此类中的公共setter,我基本上都希望抛出exception。

注意:我不想在类周围创建一个包装器对象来实现它。 我很懒。

没有没有通过反思。 类型定义不能在运行时通过reflection进行更改,因此不能用作使类型不可变的设备。

但reflection可以用来违反一种类型的不变性。 例如,可以在构造函数运行后很长时间通过reflection设置标记为readonly的属性。

我发现很难相信你愿意引入reflection代码来做一些可以用包装类简单解决的东西。

当你的reflection代码中断或需要修改时,现在花费很少的时间可以节省很多痛苦的时间。 包装器类很简单,易于实现,类型安全,并且对其他开发人员来说很有意义。 不要让懒惰决定你的建筑选择。

上述就是C#学习教程:在运行时使对象不可变分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031803.html

发表评论

邮箱地址不会被公开。 必填项已用*标注