Rumah > Artikel > pembangunan bahagian belakang > C# Nullable
Pembolehubah tidak boleh diberikan nilai null dalam C#, jadi untuk mengatasinya, ciri khas disediakan oleh C#, yang memberikan nilai null kepada pembolehubah yang dipanggil jenis nullable, dan ia tidak berfungsi dengan jenis rujukan kerana null nilai sudah ada, ia hanya berfungsi dengan jenis nullable yang merupakan instance System.Nullable
Sintaks:
Nullable<data_type> variable_name = null;
Sintaks di atas mewakili jenis data nullable dalam C#. Kata kunci nullable mewakili jenis nullable yang merupakan contoh System.Nullable
Terdapat juga jalan pintas untuk sintaks ini yang melibatkan? operator bersama-sama dengan jenis data seperti yang dinyatakan di bawah:
data_type? variable_name = null;
Sintaks di atas mewakili jenis data nullable dalam C#. The ? simbol tanda mewakili jenis nullable. Jenis data mewakili jenis data pembolehubah, dengan nama_pembolehubah mewakili nama pembolehubah dan nilai nol diberikan kepadanya.
Nilai null adalah lebih rendah daripada sebarang nilai; maka pengendali perbandingan tidak boleh digunakan dengan null, jadi kami menggunakan kelas statik nullable. Ia dianggap sebagai kelas pembantu untuk jenis Nullable. Kelas statik nullable menyediakan kaedah GetUnderlyingType. Argumen jenis bagi jenis nullable dikembalikan melalui kaedah ini.
Jenis data primitif ialah jenis nilai, contohnya, nombor. Jenis nilai disimpan dalam tindanan dan dimulakan kepada nilai lalainya secara tersirat oleh rangka kerja .NET, walaupun ia tidak dimulakan secara eksplisit pada masa ia ditakrifkan. Sebagai contoh, nilai integer dimulakan kepada sifar secara lalai; nilai Boolean dimulakan kepada palsu secara lalai dan seterusnya. Begitu juga, semua jenis nilai mewakili nilai lalai. Tiada satu pun daripada mereka boleh mewakili nilai null yang sangat menonjol dalam aplikasi pangkalan data dan yang mewakili null adalah penting dalam aplikasi tersebut. Sebarang nilai yang dipilih untuk mewakili nilai nol mungkin tidak termasuk dalam julat nilai yang dibenarkan untuk jenis data nilai. Sebagai contoh, jika kita memilih -1 untuk mewakili null untuk jenis nilai, -1 mungkin bukan nilai yang dibenarkan untuk jenis data tersebut. Seseorang juga harus memastikan jika nilai tertentu dipilih untuk mewakili nilai nol dalam aplikasi, nilai itu tidak boleh digunakan di tempat lain untuk sebarang tujuan lain merentas aplikasi. Untuk mengatasi masalah ini, jenis nullable disediakan oleh C# 2.0. Struktur Sistem. Nullable adalah seperti berikut, yang boleh digunakan untuk menentukan jenis nullable:
Kod:
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(); } }
Di sini T bermaksud jenis nilai, dan struktur menerima satu parameter. Sebarang nilai boleh ditakrifkan sebagai jenis nullable dengan menggunakan sintaks.
Sintaks:
System.Nullable<data_type> variable_name = null;
Berikut adalah contoh yang diberikan di bawah untuk C# Nullable.
Program C# untuk menggambarkan jenis nullable apabila tiada nilai diberikan kepada pembolehubah
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.
Atas ialah kandungan terperinci C# Nullable. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!