5

c# で後置演算子と前置演算子のオーバーロードを実装するにはどうすればよいですか

void Main()
{
    MyClass myclass=new MyClass();
    myclass.x=5;
    Console.WriteLine((++myclass).x);
          Console.WriteLine((myclass++).x);
}

public class MyClass
{
    public int x;
    public static MyClass operator ++(MyClass m)
    {
        m.x=m.x+1;
        return m;
    }

}

これは不要な演算子のオーバーロードかもしれませんが、++ 演算子をオーバーロードできることが知られています。ここで異なる動作を実現するにはどうすればよいですか ( i++, ++i)

4

1 に答える 1

2

私が見てきたことから、C# で単項演算子 ++ をオーバーロードすると、演算子の後置バージョンと前置バージョンの両方がオーバーロードされます。

ソース: http://devhawk.net/2003/07/09/operator-overloading-in-c/ http://www.programmingvideotutorials.com/csharp/csharp-operator-overloading

于 2012-05-10T10:22:35.370 に答える