1.24. C # nullable type

发布时间 : 2025-10-25 13:34:38 UTC      

Page Views: 10 views

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

? single question mark is used for int double bool 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.

1.24.2. 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> ?  = null;    

The following example demonstrates the use of nullable data types:

1.24.3. 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: 

1.24.4. 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 
《地理信息系统原理、技术与方法》  97

最近几年来,地理信息系统无论是在理论上还是应用上都处在一个飞速发展的阶段。 GIS被应用于多个领域的建模和决策支持,如城市管理、区划、环境整治等等,地理信息成为信息时代重要的组成部分之一; “数字地球”概念的提出,更进一步推动了作为其技术支撑的GIS的发展。 与此同时,一些学者致力于相关的理论研究,如空间感知、空间数据误差、空间关系的形式化等等。 这恰好说明了地理信息系统作为应用技术和学科的两个方面,并且这两个方面构成了相互促进的发展过程。