Post by Admin on May 31, 2014 10:15:28 GMT -5
In C# types are divided into 2 broad categories.
Value Types - int, float, double, structs, enums etc
Reference Types – Interface, Class, delegates, arrays etc
By default value types are non nullable. To make them nullable use ?
int i = 0 (i is non nullable, so "i" cannot be set to null, i = null will generate compiler error)
int? j = 0 (j is nullable int, so j=null is legal)
Nullable types bridge the differences between C# types and Database types
Samples Code:
using System;
class Program
{
static void Main()
{
// string Name = null;
// int? i = null;
// bool? AreYouMajor = null;
if (AreYouMajor == true)
{
Console.WriteLine("User is Major");
}
else if (!AreYouMajor.Value) // else if (AreYouMajor == false)
{
Console.WriteLine("User is not Major");
}
else
{
Console.WriteLine("User did not answer the question");
}
}
}
Program without using NULL coalescing operator
using System;
class Program
{
static void Main()
{
int AvailableTickets;
int? TicketsOnSale = null;
if (TicketsOnSale == null)
{
AvailableTickets = 0;
}
else
{
AvailableTickets = (int)TicketsOnSale; // AvailableTickets = TicketsOnSale.Value;
}
Console.WriteLine("Available Tickets={0}", AvailableTickets);
}
}
The above program is re-written using NULL coalescing operator
using System;
class Program
{
static void Main()
{
int AvailableTickets;
int? TicketsOnSale = null;
//Using null coalesce operator ??
AvailableTickets = TicketsOnSale ?? 0;
Console.WriteLine("Available Tickets={0}", AvailableTickets);
}
}