我见过很多使用类似的东西编写的示例代码(请原谅这是多么可怕的罐头):
public class Test
{
public object Thingy { get; private set; }
}
不幸的是,这些例子从未真正解释为什么“set”被设置为私有。所以,我只是想知道是否有一个好的、常见的例子可以向我说明为什么会使用这样的东西。
我有点看到它 - 除了设置该字段之外,还可以运行该属性来处理一些额外的逻辑。我只是对如何调用它以及为什么使用这种方法而不是通用的 setter 方法感到困惑。
如果您有一个属性,除了您的班级之外,您不希望任何人设置。这对于数据库 ID 来说非常方便。内部类可以设置它,但您不希望其他人更改它。因此,您可以授予他们读取权限,但不能授予写入权限。
编辑:这一点的另一点是,使用您所展示的内容对于自动属性很有帮助。不幸的是,对于自动属性,您无法仅指定 get,因此为了避免公开暴露 setter,它只是被设为私有。
编辑:只是想我会举一个例子。自动属性非常适合干净、简洁的代码。但正如您所表明的,存在一个限制,您必须获取和设置。所以之前像你展示的这样的房产是这样的:
public class Test
{
private object thingy;
public object Thingy
{
get { return thingy; }
}
}
现在我们可以摆脱不需要的私人声明,但它需要两者。因此,请设为私有以解决此问题。
我知道这样的解释有些过分了,但不同的事情不断在我的脑海中浮现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)