CSharp - Operator Comparison Operators


The equality and comparison operators, ==, !=, <, >, >=, and <=, work for all numeric types.

== and != test for equality and inequality of any type, return a bool value.

When using == on Value types, it compares the actual value:

int x = 1;
int y = 2;
int z = 1;
Console.WriteLine (x == y);         // False
Console.WriteLine (x == z);         // True

When using == operator on reference types, by default, it is comparing the reference not the actual value.

The following code create a class to represent a person. class type is a reference type.

In the main method, it creates two object of persons, they both have the same time.

The == is comparing the reference not the value.


using System;

class Person/* w  ww.j av a  2 s .c  o m*/
       public string Name;
       public Person (string n) { Name = n; }

class MainClass
   public static void Main(string[] args)

     Person d1 = new Person ("John");
     Person d2 = new Person ("John");
     Console.WriteLine (d1 == d2);       // False
     Person d3 = d1;
     Console.WriteLine (d1 == d3);       // True