C#在不同的类中使用++运算符

时间:2017-03-19 06:23:09

标签: c# operators

我正在尝试为某些东西创建一个类,我需要在int中使用++和 - 运算符。我有一个错误,它所说的"可加载二进制运算符"但我不知道这意味着什么。这是我的代码:

        public static int operator ++(TriggerMeter m, int value)
    {
        if (m != null)
        {
            int newValue = m.Triggeredness + value;
            m.Triggeredness = newValue;
            return newValue;
        }
        return 0;
    }

1 个答案:

答案 0 :(得分:2)

运算符++是一元运算符,您尝试将其视为二元运算符。返回类型也应该是包含类型。

所以你的代码正确签名应该是:

public static TriggerMeter operator ++(TriggerMeter m)

但是,您似乎想要覆盖+运算符,该运算符与您实现的运算符相同,只需将++替换为+即可。

小心,因为您要更改对象中的值并返回它,这可能不是一个明显(和自然)的用法,并可能导致错误。