gpt4 book ai didi

c# - 为什么属性访问器中的访问修饰符应该比属性本身更具限制性?

转载 作者:行者123 更新时间:2023-11-30 14:14:45 27 4
gpt4 key购买 nike

在开发我的应用程序时,有时我会想到我需要一个目前是私有(private)的属性,但也许稍后当我们需要处理新场景时,我们可能需要将其设为公共(public)属性。但是,即使会发生这种情况,我也始终希望 setter 保持私密性。我想写这样的代码:

private int A
{
get{return _a;}
private set {_a = value;}
}

编译器提示 setter 上的访问修饰符应该比属性更严格。好吧,我需要删除 set 上的访问修饰符,但如果以后我需要将该属性提升为公共(public),我也会公开它的 setter。

你不认为这是一个警告而不是错误更好吗?

最佳答案

如果您要将代码更改为public,您还可以同时将代码更改为private set

至于这是一个警告,我认为它有一定的道理 - 我认为仅指定 private 两次(尽管这显然毫无意义)不会导致任何失败。也就是说,我很少遇到此编译器错误,当我遇到时,我会花 5 秒钟来修复它并继续前进。

具有讽刺意味的是,我们现在花在这个问题和答案上的时间比我们可能曾经花在这个错误上的时间更长,而且它的影响:-)

关于c# - 为什么属性访问器中的访问修饰符应该比属性本身更具限制性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309862/

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