gpt4 book ai didi

C# 从 get 返回一个只读变量;放;

转载 作者:IT王子 更新时间:2023-10-29 04:05:59 26 4
gpt4 key购买 nike

我发誓我见过这样的一个例子,但是用谷歌搜索了一下却找不到。

我有一个类,它引用了一个对象,需要有一个 GET;它的方法。我的问题是我不希望任何人能够摆弄它,即我希望他们得到它的只读版本,(注意我需要能够从我的类(class)中改变它)。

谢谢

最佳答案

不,没有办法做到这一点。例如,如果您返回 List<string> (而且它不是不可变的)然后调用者能够添加条目。

正常的方法是返回一个不可变的包装器,例如 ReadOnlyCollection<T> .

对于其他可变类型,您可能需要在返回值之前克隆该值。

请注意,仅返回不可变接口(interface) View (例如返回 IEnumerable<T> 而不是 List<T> )不会阻止调用者转换回可变类型并发生变异。

编辑:请注意,除此之外,这种担忧是不可变类型使代码推理更容易的原因之一:)

关于C# 从 get 返回一个只读变量;放;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939563/

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