Csharp/CSharp Tutorial/Operator Overload/pipe operator — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 12:18, 26 мая 2010

Overload |

using System;   
   
class TwoDimension {   
  int x, y;
   
  public TwoDimension() { 
     x = y = 0; 
  }   
  public TwoDimension(int i, int j) { 
     x = i; 
     y = j; 
  }   
 
 
  // Overload |.   
  public static bool operator |(TwoDimension op1, TwoDimension op2)   
  {  
    if( ((op1.x != 0) || (op1.y != 0)) | 
       ((op2.x != 0) || (op2.y != 0)) ) 
      return true;   
    else   
      return false;   
  }   
 
  // Show X, Y   
  public void show()   
  {   
    Console.WriteLine(x + ", " + y);   
  }   
}   
   
class MainClass {   
  public static void Main() {   
    TwoDimension a = new TwoDimension(5, 6);   
    TwoDimension b = new TwoDimension(10, 10);   
    TwoDimension c = new TwoDimension(0, 0);   
   
    Console.Write("Here is a: ");   
    a.show();   
    Console.Write("Here is b: ");   
    b.show();   
    Console.Write("Here is c: ");   
    c.show();   
    Console.WriteLine();   
 
    if(a | b) 
        Console.WriteLine("a | b is true."); 
    else 
        Console.WriteLine("a | b is false."); 
 
    if(a | c) 
        Console.WriteLine("a | c is true."); 
    else 
        Console.WriteLine("a | c is false."); 
  }   
}
Here is a: 5, 6
Here is b: 10, 10
Here is c: 0, 0
a | b is true.
a | c is true.