ArgumentOutOfRangeException。使用getter,setter - C#

时间:2015-10-09 09:47:37

标签: c# setter getter

我需要创建一个包含字段的类Personnamesurnamesalary。 如果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;
            }
        }
    }
}

在main中:

Employee tmp = new Employee("michal", "jakowski", -1400);

1 个答案:

答案 0 :(得分: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;
        }
    }
}