gpt4 book ai didi

c# - 我如何确定一个类在 C# 中是否不可变?

转载 作者:可可西里 更新时间:2023-11-01 03:04:28 24 4
gpt4 key购买 nike

如何确定 C# 中的类是否不可变?

最佳答案

ImmutableObjectAttribute,但很少使用且支持不佳 - 当然也没有强制执行(您可以使用 [ImmutableObject(true)] 标记可变对象。据我所知,这唯一影响的是 IDE 处理属性的方式(即显示/不显示命名的属性选项)。

实际上,您必须检查 FieldInfo.IsInitOnly,但这仅适用于真正 100% 不可变的类型(假设没有反射滥用等);它无助于冰棒的不变性,也无助于在实践中不可变的事物,但在它们的实现中则无济于事;也就是说,它们不能公开可变,但理论上该对象支持它。

这里的一个经典示例是字符串...每个人都“知道”string 是不可变的...当然,StringBuilder 改变引擎盖下的字符串。不,认真的...

鉴于此,很难定义不变性,更不用说可靠地检测它了......

关于c# - 我如何确定一个类在 C# 中是否不可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com