2011-01-28 41 views
0

我尝试使用AIP自动实现的属性错误

public int AIP_NoSet 
{ 
    get { ;} 
} 

编译器说,这是一个错误:
Program.c1.AIP_NoSet.get':不是所有的代码路径返回一个值

但即使我写

public int AIP_NoSet { get { ;} set { ;} }

它显示我同样的错误。

我在哪里错了?

回答

2

片刻derp。

public int AIP_NoSet { get; set; } 

听起来像是你想只用 'GET' 定义的自动属性。

这是编译器不允许的。

您可以通过添加一个private集做到这一点(如其他人回答),或者不使用自动属性:

private int _aip = int.MaxValue; 
public int AIP_NoSet { get {return _aip;}} 

或者,如果你不想设置,只需要使用一个常量:

public const int AIP_NoSet = 2; 
+0

但是,如果我只需要设置,只能得到? – Sergey 2011-01-28 22:15:37

4

你应该写

public int AIP { get; set; } 

当你写{ ;}之后,这被视为用户实现的属性的语法错误尝试。你不能没有setter,但你可以使setter私有:

public int AIP_PrivateSet { get; private set; } 
2

使setter访问专用并修复语法。

public int AIP_NoSet { get; private set; }