gpt4 book ai didi

c# - 只读字段可以公开吗?

转载 作者:太空狗 更新时间:2023-10-29 23:24:59 24 4
gpt4 key购买 nike

我有一个带有指示我的对象状态的只读字段的类。这些字段应该从外部可见。

起初我用 properties 显示这些字段是这样的:

public class MyClass
{
private readonly MyState mystate = new MyState();
public MyState MyState { get { return this.mystate; } }
}

但由于这是只读,我的类的用户无法更改状态的实例。因此,我删除了我的 property,将 readonly 字段设置为 public 并将其重命名为 Pascal Case。

到目前为止,我看到的唯一问题是重构,但由于我的 public property 是驼峰式的,就像我的 public readonly 一样,我可以将它移到 属性无缝。

可以Jimmy弄乱我的对象(不修改代码)还是使用 property 更安全?

最佳答案

没有理由不让它成为一种属性(property); CLI 通常会在这样一个简单的属性上内联“get”。当然,这是额外的一行代码。

严格来说,field 和 property 之间的改变是一个破坏性的改变。除了是不同的 IL 操作之外,它还是不同的语义,尤其是在涉及结构的情况下。

将其设为属性可为您在以后的更改方面提供最大的灵 active ;延迟加载、间接等

关于安全性:确实,只读字段与只读属性大致相似。如果有人足够关心想要这样做,两者都可能被反射(reflection)滥用。不过,我的投票仍将针对公共(public)属性(property) :)

关于c# - 只读字段可以公开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11593122/

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