'短期实施'Getter'长期实施'The Setter

时间:2014-06-16 05:26:50

标签: c# getter-setter

对于公共原始变量;是否可以实施set方法和'短实施'get方法?

当我说'Short-Implement'get我的意思是:

public double width { get; set { width = (isLocked) ? 0:value; } }

而不是'长期实施'get

public double width { get { return width; } set { width = (isLocked) ? 0:value; } }

当我尝试'Short-Implement'get(这个btw的术语是什么?)和'Long-Implement'set时,我遇到了编译错误。编译错误是:

 `Cube.width.get' must have a body because it is not marked abstract, extern, or partial

1 个答案:

答案 0 :(得分:5)

  

是否可以实现set方法和' Short-Implement' get方法?

不,自动实现的属性不允许您定义getter或setter实现的任何部分。

来自Auto-Implemented Properties (C# Programming Guide)

  

在C#3.0及更高版本中,自动实现的属性使属性声明更简洁在属性访问器中不需要其他逻辑时

使用支持字段,并考虑将isLocked true set { if (isLocked) throw new InvalidOperationException("Knock that set off!"); _width = value; } 时调用您的setter的代码视为错误并抛出异常。

{{1}}