C# では変数に null 値を割り当てることができないため、これを克服するために、C# では null 値を null 許容型と呼ばれる変数に割り当てる特別な機能が提供されていますが、この機能は参照型では機能しません。 value がすでに存在する場合、System.Nullable
構文:
Nullable<data_type> variable_name = null;
上記の構文は、C# の null 許容データ型を表します。キーワード nullable は、System.Nullable
この構文には、次のようなショートカットもあります。以下に示すように、演算子とデータ型を組み合わせます:
data_type? variable_name = null;
上記の構文は、C# の null 許容データ型を表します。 ?マーク記号は null 許容型を表します。データ型は変数のデータ型を表します。ここで、variable_name は変数の名前を表し、null 値が割り当てられます。
null の値はどの値よりも小さいです。したがって、比較演算子は null では使用できないため、null 許容の静的クラスを使用します。これは、Nullable 型のヘルパー クラスとみなされます。 Null 許容静的クラスは GetUnderlyingType メソッドを提供します。 null 許容型の型引数は、このメソッドによって返されます。
プリミティブ データ型は、数値などの値型です。値の型は、定義時に明示的に初期化されない場合でも、スタックに格納され、.NET Framework によって暗黙的にデフォルト値に初期化されます。たとえば、整数値はデフォルトでゼロに初期化されます。ブール値はデフォルトで false に初期化されます。同様に、値のタイプはすべてデフォルト値を表します。これらはいずれも、データベース アプリケーションで非常に重要な null 値を表すことができず、そのようなアプリケーションでは null を表すことが重要です。 NULL 値を表すために選択された値は、その値のデータ型で許可される値の範囲に収まらない場合があります。たとえば、値型の null を表すために -1 を選択した場合、-1 はそのデータ型で許可される値ではない可能性があります。また、アプリケーション内で null 値を表すために特定の値が選択された場合、その値がアプリケーション全体で他の目的に使用されてはならないことも確認する必要があります。この問題を解決するために、C# 2.0 では null 許容型が提供されました。システムの構造。 Nullable は次のとおりで、Nullable 型を定義するために使用できます。
コード:
namespace System { public struct Nullable : System.IComparable, System.INullableValue { public Nullable(T value); public static explicit operator T(T? value); public static implicit operator T?(T value); public T Value { get; } public bool HasValue { get; } public T GetValueOrDefault(); } }
ここで、T は値の型を表し、構造体は 1 つのパラメーターを受け入れます。構文を使用すると、任意の値を null 許容型として定義できます。
構文:
System.Nullable<data_type> variable_name = null;
次に、C# Nullable の例を示します。
変数に値が割り当てられていない場合の null 許容型を示す C# プログラム
Code:
using System; public class Geeks { //Defining Main Method public static void Main(string[] args) { // Nullable type is defined Nullable<int> a = null; // We use the method GetValueOrDefault(), the default value is 0 Console.WriteLine(a.GetValueOrDefault()); // Nullable type is defined int? b = null; //We use the method GetValueOrDefault(), the default value is 0 Console.WriteLine(b.GetValueOrDefault()); // non-nullable is defined using nullable type syntax int? a1 = 200; // We use the method GetValueOrDefault(), the default value is 0 but the value that is assigned to the variable is returned Console.WriteLine(a1.GetValueOrDefault()); // non-nullable is defined using nullable type syntax Nullable<int> b1 = 10; // We use the method GetValueOrDefault(), the default value is 0 but the value that is assigned to the variable is returned Console.WriteLine(b1.GetValueOrDefault()); } }
The output of the above code is shown in the snapshot below:
Output:
C# program using nullable type to illustrate the use of nullable.HasValue method.
Code:
using System; public class GFG { //Defining Main Method public static void Main() { // defining the variable m as a nullable type Nullable<int> m = 100; // the value of the variable m is checked Console.WriteLine(m.HasValue); // defining the variable n as a nullable type and assigned a value to it Nullable<int> n = null; // check the value of object Console.WriteLine(n.HasValue); } }
The output of the above code is shown in the snapshot below:
Output:
In this tutorial, we understand the concept of nullable type in C# through definition and then understand the working of nullable type in C#. Then we understand different C# programs using nullable type and their working with their output snapshots included with the programs’ results.
以上がC# Null 可能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。