过载>;=操作人员

本文关键字:操作 gt 过载 | 更新日期: 2023-09-27 18:29:58

我需要重载运算符>=。如果条件为true,则运算符返回true,否则返回false。如果至少有一个对象是null,则抛出异常(ArgumentException)。我试过了。怎么了?

public static bool operator false(Staff inputPerson)
{
    if ((inputPerson.salary) <= 15000)
    {
        return true;
    }
    else if ((inputPerson.salary) is null)
    {
        throw new ArgumentOutOfRangeException("This person does not have a job");
    }
    return false;
}

过载>;=操作人员

您需要执行类似public static bool operator <= (Rational rational1, Rational rational2) 的操作

当您重载它时,您需要确保您也重载了所有相关的运算符。例如<,><=,>=以及等式运算符和方法。

您需要传入两个要比较的对象,因为该方法是静态的,而不是实例方法。

试试这个:

public static bool operator >=(Staff p1, Staff p2) {
    if (p1 is null || p2 is null) {
        throw new ArgumentOutOfRangeException("This person does not have a job");
    }
    return p1.salary >= p2.salary;
}

来源:http://msdn.microsoft.com/en-us/library/aa288467%28v=vs.71%29.aspx