Nullable<T>.GetValueOrDefault Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Retrieves the value of the current Nullable<T> object, or the object's default value.
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: TThe value of the Value property if the HasValue property is true; otherwise, the default value of the current Nullable<T> object. The type of the default value is the type argument of the current Nullable<T> object, and the value of the default value consists solely of binary zeroes.
The GetValueOrDefault method returns a value even if the HasValue property is false (unlike the Value property, which throws an exception).
The following code example retrieves the value of a Nullable<T> object if that value is defined; otherwise, it retrieves the default value or a specific default value.
// This code example demonstrates the // Nullable<T>.GetValueOrDefault methods. using System; class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { float? mySingle = 12.34f; float? yourSingle = -1.0f; outputBlock.Text += "*** Display a value or the default value ***\n" + "\n"; // Display the values of mySingle and yourSingle. Display("A1", mySingle, yourSingle); // Assign the value of mySingle to yourSingle, then display the values // of mySingle and yourSingle. The yourSingle variable is assigned the // value 12.34 because mySingle has a value. yourSingle = mySingle.GetValueOrDefault(); Display("A2", mySingle, yourSingle); // Assign null (Nothing in Visual Basic) to mySingle, which means no value is // defined for mySingle. Then assign the value of mySingle to yourSingle and // display the values of both variables. The default value of all binary zeroes // is assigned to yourSingle because mySingle has no value. mySingle = null; yourSingle = mySingle.GetValueOrDefault(); Display("A3", mySingle, yourSingle); // Reassign the original values of mySingle and yourSingle. mySingle = 12.34f; yourSingle = -1.0f; outputBlock.Text += "\n*** Display a value or the "; outputBlock.Text += "specified default value ***\n" + "\n"; // Display the values of mySingle and yourSingle. Display("B1", mySingle, yourSingle); // Assign the value of mySingle to yourSingle, then display the values // of mySingle and yourSingle. The yourSingle variable is assigned the // value 12.34 because mySingle has a value. yourSingle = mySingle.GetValueOrDefault(-222.22f); Display("B2", mySingle, yourSingle); // Assign null (Nothing in Visual Basic) to mySingle, which means no value is // defined for mySingle. Then assign the value of mySingle to yourSingle and // display the values of both variables. The specified default value of -333.33 // is assigned to yourSingle because mySingle has no value. mySingle = null; yourSingle = mySingle.GetValueOrDefault(-333.33f); Display("B3", mySingle, yourSingle); } // Display the values of two nullable of System.Single structures. // The Console.WriteLine method automatically calls the ToString methods of // each input argument to display its values. If no value is defined for a // nullable type, the ToString method for that argument returns the empty // string (""). public static void Display(string title, float? dspMySingle, float? dspYourSingle) { Console.WriteLine("{0}) mySingle = [{1}], yourSingle = [{2}]", title, dspMySingle, dspYourSingle); } } /* This code example produces the following results: A1) mySingle = [12.34], yourSingle = [-1] A2) mySingle = [12.34], yourSingle = [12.34] A3) mySingle = [], yourSingle = [0] *** Display a value or the specified default value *** B1) mySingle = [12.34], yourSingle = [-1] B2) mySingle = [12.34], yourSingle = [12.34] B3) mySingle = [], yourSingle = [-333.33] */