虽然我当然熟悉自动属性,但我只是在工作中遇到过这个,这似乎是一个截然不同的野兽:
public SomeType SomeProp
{
get
{
return someField;
}
set
{
}
}
我很惊讶它甚至编译了,我想这一定是一个错误:该属性似乎允许设置,但这样做绝对没有任何作用。
这个结构有什么用吗?是不是像电梯里的那些“关门”按钮,什么都不做,却让用户感觉很好?
最佳答案
为什么你不希望它编译?实际上,setter 只是一个只有一个参数的 void 方法。您可以轻松地完美地编写损坏的方法而不期望编译器注意到 - 属性也是如此。
我无法轻易想象任何情况下这是故意的,但是,除了“部分”实现 - 例如演示语言功能,或者如果您正在测试某些确实设置了属性,但您不关心测试将其设置为什么。 (我个人通常至少会记录该属性已设置。)
关于c# - 具有空访问器的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883797/