gpt4 book ai didi

.net - ImmutableObject 属性有什么好处?

转载 作者:行者123 更新时间:2023-12-04 23:18:12 26 4
gpt4 key购买 nike

我正在测试 ImmutableObjectAttribute属性只是为了好奇,看看我是否可以从中获得一些好处,或者它是否只是为了语义装饰......

  • ImmutableObjectAttribute Class

  • Specifies that an object has no subproperties capable of being edited.



    所以我有这门课:
    <ImmutableObject(True)>
    Public Class TestClass

    <ImmutableObject(True)>
    Public sb As StringBuilder

    Public Sub New()
    sb = New StringBuilder
    End Sub

    End Class

    我已经用这个代码测试过:
        Dim obj As New TestClass

    obj.sb.Append("Hello")
    obj.sb.Append(" ")
    obj.sb.Append("World")

    MsgBox(obj.sb.ToString)

    然后,在我应用了 ImmutableObject 之后可变对象中的属性,我希望看到某种编译器警告、某种运行时异常,或者只是从 StringBuilder 的内部字符串中接收到一个意外的值。 ,但没有发生任何事情,一切似乎都正常工作。

    这让我想到了一个答案似乎很明显的问题,但我需要问它:
  • ImmutableObject属性只是一个装饰属性?。

  • 那为什么会存在这个属性呢?我找不到任何用此属性标记类的好处,它不能确保成员真的不可变,或者至少 .Net 对不可变的理解是什么(你知道,就像 String 在 .Net 中并不是真正不可变的)。

    最佳答案

    来自 ImmutableObjectAttribute Class文档:

    This attribute is typically used in the Properties window to determine whether to render an expandable object as read-only. As such, this property is used only at design time.



    ......所以是的,这只是为了装饰。

    关于.net - ImmutableObject 属性有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34640695/

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