ArgumentOutOfRangeException.使用getter,setter - C#

Tom*_*asz -2 c# getter setter

我需要创建一个类Person,有字段: name,surnamesalary.如果salary低于0,我得到例外:

ArgumentOutOfRangeException.使用getter,setter

我尝试过:

public class Employee
{
    public string name { get; set; }
    string surname { get; set; }
    private int salary;
    public int Salary
    {
        get
        {
            return salary;
        }
        set
        {
            if (salary < 0)
            {
                throw new ArgumentOutOfRangeException("salary", "wyplata ma byc wieksza niz 0");
            }
            else
            {
                salary = value;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在主要:

Employee tmp = new Employee("michal", "jakowski", -1400);
Run Code Online (Sandbox Code Playgroud)

Dmy*_*nko 5

在您的代码中,当您检查时if (salary < 0),该字段salary尚未更新value.所以你需要检查是否value小于0.

public int Salary
{
    get
    {
        return salary;
    }
    set
    {
        if (value < 0)
        {
            throw new ArgumentOutOfRangeException("salary", "wyplata ma byc wieksza niz 0");
        }
        else
        {
            salary = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)