具有空访问者的属性

J C*_*per 3 c# properties

虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽:

public SomeType SomeProp
{
  get
  {
    return someField;
  }
  set
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

我很惊讶它甚至编译,我想它一定是一个bug:该属性似乎允许设置,但这样做绝对没有.

这个结构有用吗?电梯中的那些"关门"按钮是不是做了什么,但让用户感觉良好?

Jon*_*eet 5

为什么你不期望它不编译?有效地,setter只是一个带有单个参数的void方法.您可以非常轻松地编写损坏的方法,而无需编译器注意 - 属性也是如此.

我不能很容易想象这个地方会是故意的,但是其他比"偏"实现任何情况下-例如演示语言特性,或者如果你要测试的东西,设置属性,但你不关心什么测试设置为.(我个人通常至少会记录该物业已被设定.)