C # nullable type


Release date:2023-08-29 Update date:2023-10-13 Editor:admin View counts:517

Label:

C # nullable type

C# single question mark ? and double question mark ??

? single question mark is used for intdoublebool and so on, which cannot be directly assigned to null data type of null , which means that this data type is Nullable type.

int? i = 3;

Equivalent to:

Nullable<int> i = new Nullable<int>(3);
int i; //Default value 0
int? ii; //Default value is null

The double question mark ?? is used to determine whether a variable is null,which returns a specified value.

Next, we will explain in detail.

C # nullable type

C # provides a special data type nullable type, a nullable type can represent a value within the normal range of its underlying value type, plus a null value.

For example, Nullable< Int32 > , pronounced “nullable Int32”, can be assigned any value between-2147483648 and 2147483647, or can be assigned to null Value. Similar Nullable< bool > Variables can be assigned to true or false or null .

When working with databases and other data types that contain elements that may not be assigned, set the null ability to assign values to numeric or Boolean types is particularly useful. For example, Boolean fieldsin a database can store values true or false, the field can beundefined.

Declare a nullable syntax for a type (nullable type) is as follows:

< data_type> ? <variable_name> = null;

The following example demonstrates the use of nullable data types:

Example

using System;
namespace CalculatorApplication
{
   class NullablesAtShow
   {
      static void Main(string[] args)
      {
         int? num1 = null;
         int? num2 = 45;
         double? num3 = new double?();
         double? num4 = 3.14157;

         bool? boolval = new bool?();
         // Display value

         Console.WriteLine("Display values of nullable types: {0}, {1}, {2}, {3}",
                            num1, num2, num3, num4);
         Console.WriteLine("A nullable Boolean value: {0}", boolval);
         Console.ReadLine();
      }
   }
}

When the above code is compiled and executed, it produces the following results:

Display values of nullable types: , 45,  , 3.14157
A nullable Boolean value:

The Null merge operator ( ?? )

The merge operator Null is used to define default values for nullable and reference types. Null merge operator defines a default value for type conversion in case the value of a nullable type is Null . Null merge operator implicitly converts an operand type to an operand ofanother nullable (or non-nullable) value type.

If the value of the first Operand is null, the operator returns the value of the second operand, otherwise the value of the first operand is returned. The following example demonstrates this:

Example

using System;
namespace CalculatorApplication
{
   class NullablesAtShow
   {

      static void Main(string[] args)
      {

         double? num1 = null;
         double? num2 = 3.14157;
         double num3;
         num3 = num1 ?? 5.34;      // num1 If it is a null value, return 5.34
         Console.WriteLine("The value of num3: {0}", num3);
         num3 = num2 ?? 5.34;
         Console.WriteLine("The value of num3: {0}", num3);
         Console.ReadLine();
      }
   }
}

When the above code is compiled and executed, it produces the following results:

Value of num3: 5.34
Value of num3: 3.14157

Powered by TorCMS (https://github.com/bukun/TorCMS).