虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽:
public SomeType SomeProp
{
get
{
return someField;
}
set
{
}
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶它甚至编译,我想它一定是一个bug:该属性似乎允许设置,但这样做绝对没有.
这个结构有用吗?电梯中的那些"关门"按钮是不是做了什么,但让用户感觉良好?
为什么你不期望它不编译?有效地,setter只是一个带有单个参数的void方法.您可以非常轻松地编写损坏的方法,而无需编译器注意 - 属性也是如此.
我不能很容易想象这个地方会是故意的,但是其他比"偏"实现任何情况下-例如演示语言特性,或者如果你要测试的东西,并设置属性,但你不关心什么测试设置为.(我个人通常至少会记录该物业已被设定.)