gpt4 book ai didi

c# - 有没有可能这不是一成不变的

转载 作者:行者123 更新时间:2023-11-30 16:11:50 24 4
gpt4 key购买 nike

public class LogMessage
{
public LogMessage(string message, bool isError)
{
Message = message;
IsError = isError;
}
public string Message { get; private set; }
public bool IsError { get; private set; }
}

考虑上面的代码。在任何情况下类都不能是一个完全不可变的对象吗?如果不是,为什么会这样?

最佳答案

您可以使用反射(或不可验证的 IL)修改该类。不在低信任度的环境中。

这是创建不可变对象(immutable对象)的好模式。我想要那门课。

我不知道 .NET 内存模型是否足够强大,以至于如果您将该对象移交给另一个线程,它始终会看到它处于初始化状态。它可能会看到未初始化的字段。在 x86 上,无论如何这是不可能的,因为商店充当障碍,您至少需要一个商店来发布对象。

关于c# - 有没有可能这不是一成不变的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23874225/

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