ホームページ  >  記事  >  バックエンド開発  >  C# Null 可能

C# Null 可能

WBOY
WBOYオリジナル
2024-09-03 15:16:25939ブラウズ

C# では変数に null 値を割り当てることができないため、これを克服するために、C# では null 値を null 許容型と呼ばれる変数に割り当てる特別な機能が提供されていますが、この機能は参照型では機能しません。 value がすでに存在する場合、System.Nullablestruct のインスタンスである null 許容型でのみ動作します。ここで、T はブール型、整数型、浮動小数点型などの null 非許容値型を表します。

構文:

Nullable<data_type> variable_name = null;

上記の構文は、C# の null 許容データ型を表します。キーワード nullable は、System.Nullablestruct のインスタンスである null 許容型を表します。T は、ブール型、整数型、浮動小数点型などの null 非許容値型を表します。データ型は、変数のデータ型を表します。ここで、variable_name は変数の名前を表し、null 値が割り当てられます。

この構文には、次のようなショートカットもあります。以下に示すように、演算子とデータ型を組み合わせます:

data_type? variable_name = null;

上記の構文は、C# の null 許容データ型を表します。 ?マーク記号は null 許容型を表します。データ型は変数のデータ型を表します。ここで、variable_name は変数の名前を表し、null 値が割り当てられます。

C# における Nullable 型の特徴

  • null 許容型の値には直接アクセスできません。 GetValueOrDefault() メソッドは、割り当てられた値が null に割り当てられていない場合に割り当てられた値を抽出するために使用され、null の場合はデフォルト値のゼロが返されます。
  • 参照型に基づいて null 許容型を作成しなくても、null 許容型を使用して変数に null 値を割り当てることができます。
  • 値は null 許容型に割り当てることができます。
  • Nullable HasValue と Nullable を使用して値を確認できます。オブジェクトに値が割り当てられている場合は true が返され、オブジェクトに null が割り当てられている場合は false が返されます。オブジェクトに値が割り当てられていない場合、コンパイル時エラーが発生します。
  • == と !演算子は null 許容型で使用できます。
  • null 許容型に null が割り当てられている場合、GetValueOrDefault(T) メソッドは、割り当てられた値、またはデフォルトとして与えられるデフォルト値を返します。
  • Null 合体演算子 (??) を使用して、Null 許容型の値に値を代入することもできます。
  • ネストされた Nullable 型は、Nullable 型ではサポートされていません。
  • null 許容型は var 型をサポートしません。 nullable が var.
  • で使用されている場合、コンパイラはコンパイル時エラーを返します。

C# における Nullable 型の利点

  • Nullable 型はデータベース アプリケーションで使用されます。データベース内の列に null 値が必要な場合、null 許容型を使用して列に null 値を割り当てることができます。
  • 未定義の値は、null 許容型を使用して表すことができます。
  • null 値は、参照型を使用するのではなく、null 許容型を使用して格納できます。

Null 許容ヘルパー クラス

null の値はどの値よりも小さいです。したがって、比較演算子は null では使用できないため、null 許容の静的クラスを使用します。これは、Nullable 型のヘルパー クラスとみなされます。 Null 許容静的クラスは GetUnderlyingType メソッドを提供します。 null 許容型の型引数は、このメソッドによって返されます。

C# での 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 の例

次に、C# Nullable の例を示します。

例 #1

変数に値が割り当てられていない場合の 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# Null 可能

Example #2

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:

C# Null 可能

Conclusion

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。