参数超出范围异常。使用 getter、setter - C#

ArgumentOutOfRangeException. Use getter,setter - C#

我需要创建一个 class Person,其中包含字段: namesurnamesalary。 如果 salary 小于 0,我得到异常:

ArgumentOutOfRangeException. Use 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;
            }
        }
    }
}

主要内容:

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

在您的代码中,当您选中 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;
        }
    }
}