对于公共原始变量;是否可以实施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
答案 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}}