// ==, !=, 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); }
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(); }