gpt4 book ai didi

oop - 只写属性有实际应用吗?

转载 作者:行者123 更新时间:2023-12-03 06:10:42 25 4
gpt4 key购买 nike

我不知道为什么我开始思考这个问题,但现在我似乎无法停止。

在 C# 中 - 可能还有很多其他语言,我记得 Delphi 也曾经让你这样做 - 编写以下语法是合法的:

class WeirdClass
{
private void Hello(string name)
{
Console.WriteLine("Hello, {0}!", name);
}

public string Name
{
set { Hello(name); }
}
}

换句话说,该属性有一个setter,但没有getter,它是只写

我想我想不出任何理由为什么这应该是非法的,但我从未真正在野外见过它,而且我在野生的。看起来有点代码味道;编译器似乎应该给我一个警告:

CS83417: Property 'Name' appears to be completely useless and stupid. Bad programmer! Consider replacing with a method.

但也许我做这件事的时间还不够长,或者工作的领域太窄,看不到任何有效使用这种结构的例子。

现实生活中是否有只写属性的示例,这些属性要么无法被直接方法调用替换,要么变得不那么直观?

最佳答案

代码分析(又名 FxCop)确实可以为您提供诊断:

CA1044 : Microsoft.Design : Because property 'WeirdClass.Name' is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.

关于oop - 只写属性有实际应用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213879/

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