C# 尝试在字符串上重载运算符时接收错误 我知道这可以在C++中完成,但是我不确定用这个来寻找什么。基本上,我在名为Priority的自定义类中有一个string值。我想做的是添加一个自定义操作符,允许Priority++或Priority--发生一些事情。手术看起来是这样的 public static -- () { Int32 priority = Convert.ToInt32(value); priority--; string returnValue = priority.ToString(); return returnValue; }

C# 尝试在字符串上重载运算符时接收错误 我知道这可以在C++中完成,但是我不确定用这个来寻找什么。基本上,我在名为Priority的自定义类中有一个string值。我想做的是添加一个自定义操作符,允许Priority++或Priority--发生一些事情。手术看起来是这样的 public static -- () { Int32 priority = Convert.ToInt32(value); priority--; string returnValue = priority.ToString(); return returnValue; },c#,operator-overloading,C#,Operator Overloading,与之相反的是++。我所拥有的可以在下面找到,但是我收到了错误Priority是一个属性,但它像一个类型一样使用。 现有错误代码: public static Priority operator ++(string value) { Int32 priority = Convert.ToInt32(value); priority--; string returnValue = priority.ToString(); return returnValue; }

与之相反的是
++
。我所拥有的可以在下面找到,但是我收到了错误
Priority是一个属性,但它像一个类型一样使用。

现有错误代码:

public static Priority operator ++(string value)
{
    Int32 priority = Convert.ToInt32(value);
    priority--;
    string returnValue = priority.ToString();
    return returnValue;
}

退后一步考虑:

int i = 0;
i++;
这里的
++
运算符接受一个int,并返回一个更新的int

我有一个简单的课程:

public class MyClass
{
    public string Test { get; set; }

    public static MyClass operator ++(MyClass myclass)
    {
        myclass.Test += " test";
        return myclass;
    }
}
++操作符获取一个
MyClass
并返回一个更新的
MyClass


您的
++
操作符需要获取一个
优先级
对象并返回一个更新的
优先级
对象,更新的内容由您决定。

此外
++
操作符不应变异该对象。它应该返回一个新的。如果字符串必须是一个数字,为什么优先级类会保留字符串?为什么不把它设为int呢?