gpt4 book ai didi

c# - 只写属性,有什么意义?

转载 作者:IT王子 更新时间:2023-10-29 03:48:52 26 4
gpt4 key购买 nike

<分区>

我理解您为什么要使用以下语法使用只读属性:

private int _MyInt;
public int MyInt
{
get { return _MyInt; }
}

这个例子可能不是最好的例子,因为我认为只读属性与 readonly 结合使用确实很出色。变量,但这不是重点。我不明白的是为什么使用以下语法使用只写属性:

private int _MyInt;
public int MyInt
{
set { _MyInt = value; }
}

这就是各种书籍和教程中描述只读属性的方式。如果设置变量,您会在概念上在某个点读取它,至少在类内部读取它,但即使在类内部读取它,您也可以通过访问 _MyInt 来读取它。我觉得这违反了属性试图强制执行的封装精神。相反,为什么不直接使用具有不同访问权限修改的属性的全部功能来访问它:

private int _MyInt;
public int MyInt
{
set { _MyInt = value; }
private get { return _MyInt; }
}

当然可以直接写

public int MyInt { set; private get; }

你仍然得到了封装,但限制了其他类的访问,所以它对外部类仍然是只写的。

除非在某些情况下你真的想分配给一个变量但从未真正访问它,在这种情况下我肯定会好奇什么时候会出现这种需要。

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