예제 #1
0
 // ==, !=, Equals
 public static bool operator ==(Piksel p, Piksel q)
 {
     // dla klas powinnismy sprawdzić czy nie null
     // ponieważ właśnie przeciążamy == musimu użyc ReferenceEquals
     if (Piksel.ReferenceEquals(p, null) || Piksel.ReferenceEquals(q, null))
     {
         return(false);
     }
     return(p.x == q.x && p.y == q.y);
 }
예제 #2
0
        static void Main(string[] args)
        {
            Piksel m = new Piksel(1, 2);
            Piksel n = new Piksel(1, 1);
            Piksel p = new Piksel(1, 2);

            Console.WriteLine(p);
            Zespolona z = p;

            Console.WriteLine(z);
            Piksel r = (Piksel)z;

            Console.WriteLine(r);

            Console.WriteLine();
            Console.WriteLine(m == n);
            Console.WriteLine(m == p);
            Console.WriteLine(m != n);
            Console.WriteLine(m != p);
            Console.WriteLine(m == null);
            Console.WriteLine(m.Equals(n));
            Console.WriteLine(m.Equals(p));
            Console.WriteLine(m.Equals(z)); // z Zespolona

            Console.WriteLine();
            Piksel q = ++r;

            Console.WriteLine(q);
            Console.WriteLine(r); //także r się zmieniło tak jak dla int!
            p++;
            Console.WriteLine(p);
            --p;
            Console.WriteLine(p);

            Console.WriteLine();
            Console.WriteLine(m & n);
            Console.WriteLine(m | n);
            Console.WriteLine(m | 2);
            // ponieważ mamy true i false oraz & to automatycznie zdefiniowany jest && i ||
            Console.WriteLine(m && n);
            Console.WriteLine(m || n);


            Console.ReadKey();
        }