自动实现的属性错误

时间:2011-01-28 22:06:39

标签: c# .net

我尝试使用AIP

public int AIP_NoSet
{
    get { ;}
}

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

但即使我写了

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

它向我显示了同样的错误。

我哪里错了?

3 个答案:

答案 0 :(得分:4)

你应该写

public int AIP { get; set; }

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

public int AIP_PrivateSet { get; private set; }

答案 1 :(得分:2)

derp的一刻。

public int AIP_NoSet { get; set; }

听起来你想要一个只定义了'get'的自动属性。

编译器不允许这样做。

您可以通过添加private集(正如其他人已经回答)或不使用自动属性来完成此操作:

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

或者,如果您不想设置它,只需使用const:

public const int AIP_NoSet = 2;

答案 2 :(得分:2)

将setter访问权限设为私有并修复语法。

public int AIP_NoSet { get; private set; }