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


在运行时使对象不可变

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

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

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

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

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

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

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

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1031803.html

(0)
上一篇 2022年1月14日
下一篇 2022年1月14日

精彩推荐