已经包含了一个定义

Kos*_*Mar 4 c# visual-studio-2010

我曾称为类Assign

    private int SeatNumber;

    public Assign(int SeatNum)
    {
        SeatNumber = SeatNum;
    }

    public int SeatNumber
    {
        get { return SeatNumber; }
        set { SeatNumber = value; }

    }
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我收到以下错误

类型'WindowsFormsApplication1.Assign'已包含'SeatNumber'的定义

怎么了?

Mik*_*ran 9

你在这里两次声明相同的变量.

private int SeatNumber;
public int SeatNumber
{
    get { return SeatNumber; }
    set { SeatNumber = value; }

}
Run Code Online (Sandbox Code Playgroud)

该代码定义了两次相同的变量.如果您使用的是.net 3.0+,则可以执行此类自动实现的属性,但不能private int SeatNumber:

public int SeatNumber
{
    get;
    set;
}
Run Code Online (Sandbox Code Playgroud)

否则,你应该这样做:

private int SeatNumber_;
public int SeatNumber
{
    get { return SeatNumber_; }
    set { SeatNumber_ = value; }
}
Run Code Online (Sandbox Code Playgroud)


das*_*ght 5

您应该确保支持该属性的变量具有不同的名称.通常使用camelCase:

private int seatNumber;

public Assign(int SeatNum)
{
    SeatNumber = SeatNum;
}

public int SeatNumber
{
    get { return seatNumber; }
    set { seatNumber = value; }
}
Run Code Online (Sandbox Code Playgroud)

此外,在getter ans setter很简单的情况下,从C#3.0开始,您可以使用自动属性,如下所示:

public int SeatNumber {get; set;}
Run Code Online (Sandbox Code Playgroud)

这允许您删除支持变量:编译器将为您处理它.