C# 运算符重载(入门经典第七版)

   public class AddClass1

      {

        public int val;

        public static AddClass3 operator +(AddClass1 op1, AddClass2 op2)

        {

          AddClass3 returnVal = new AddClass3();

          returnVal.val = op1.val + op2.val;

          return returnVal;

}

}

public class AddClass2

{

  public int val;

}

public class AddClass3

{

  public int val;

}

下面的代码就可以执行:

      AddClass1 op1 = new AddClass1();

      op1.val = 5;

      AddClass2 op2 = new AddClass2();

      op2.val = 5;

      AddClass3 op3 = op1 + op2;

在合适时,可以用这种方式混合类型但要注意,如果把相同的运算符添加到AddClass2中,上面的代码就会失败,因为它将不知道要使用哪个运算符。因此应注意不要把签名相同的运算符添加到多个类中。(这是什么意思啊 没懂 麻烦大佬解答下!)

    还要注意,如果混合了类型,操作数的顺序必须与运算符重载的参数的顺序相同。用了重载的运算符和顺序错误的操作数,操作就会失败。所以不能像下面这样使用运算符:

      AddClass3 op3=op2 + op1;

猜你喜欢

转载自blog.csdn.net/qq_33407246/article/details/80372176