Introduction:
The keyword default plays several and important roles in the C# language, therefore, I will enumerate some cases where the default keyword is used.
First use case:
The keyword default is used within the switch ... case bloc, to illustrate how, I propose this example:
Color x = new Color();
switch (x)
{
case Color.Red :
MessageBox.Show("This is not a primary color");
//TO DO: Perform some task
break;
case Color.Green :
MessageBox.Show("This is not a primary color");
//TO DO: Perform some task
break;
case Color.Blue:
MessageBox.Show("This is not a primary color");
//TO DO: Perform some task
break;
default:
MessageBox.Show("This is not a primary color");
}
As you see the default play the role of somewhat the exception catcher or the else keyword within a given condition block, but you tell me OK I know this. Have you any thing new where using the keyword default is necessary. YES of course, here are two other use cases.
Second use case:
Imagine if it is necessary to reset the value of a given generic type, you can employ this code for example:
using System;
using System.Collections.Generic;
using System.Text;
public class myType<T>
{
public myType() { }
private T _Attribute1;
private T _Attribute2;
public T Attribute1
{
get { return _Attribute1; }
set { _Attribute1 = value; }
}
public T Attribute2
{
get { return _Attribute1; }
set { _Attribute2 = value; }
}
public T method()
{
//TO DO: implement some tasks here else
return null;
}
//To reset the type T defined by the class user
public void ResetGenericType()
{
Attribute1 = default(T);
Attribute2 = default(T);
}
}
Third use case
Suppose now that you want to know whether a generic type is of reference like a String or of value like an Int.
using System;
using System.Collections.Generic;
using System.Text;
public class myType<T>
{
public myType()
{
if (default(T) == null)
Console.WriteLine("T is a type of reference.");
else
Console.WriteLine("T is a type of value.");
}
//TO DO: Implement the rest of the class members
}
The keyword default is certainly used within other contexts but there is a thing that one should keep in mind is that in fact every keyword within the C# syntax has to be appreciated
God Dotneting!!!