Nullable comparison

CSharp · Console

/Program.cs

using System;
					
public class Program
{
	// Related to https://stackoverflow.com/q/15777745/107625
	
	public static void Main()
	{
		if ( true )
		{
			int? a = null;
			int? b = 1;
		
			compare(a,b);
		}

		if ( true )
		{
			int? a = null;
			int? b = null;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = 4;
			int? b = 5;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = 5;
			int? b = 5;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = 5;
			int? b = 4;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = 5;
			int b = 4;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = null;
			int b = 4;
		
			compare(a,b);
		}
		
		if ( true )
		{
			int? a = null;
			int b = 0;
		
			compare(a,b);
		}
	}
	
	private static void compare(int? a, int? b)
	{
		if (a < b)
			Console.WriteLine("'{0}' is bigger than '{1}'.", b, a);
		else if (a > b)
			Console.WriteLine("'{0}' is bigger than '{1}'.", a, b);
		else if ( a == b )
			Console.WriteLine("Both '{0}' and '{1}' are equal.", a, b);
		else
			Console.WriteLine("'{0}' and '{1}' are not equal.", a, b);

		Console.WriteLine("--------------------------------------");
	}
	
	private static void compare(int a, int? b)
	{
		if (a < b)
			Console.WriteLine("'{0}' is bigger than '{1}'.", b, a);
		else if (a > b)
			Console.WriteLine("'{0}' is bigger than '{1}'.", a, b);
		else if ( a == b )
			Console.WriteLine("Both '{0}' and '{1}' are equal.", a, b);
		else
			Console.WriteLine("'{0}' and '{1}' are not equal.", a, b);

		Console.WriteLine("--------------------------------------");
	}
}
;