Apakah pengendali yang disediakan oleh C# untuk mengendalikan nilai nol?

WBOY
Lepaskan: 2023-09-23 17:57:02
ke hadapan
1161 orang telah melayarinya

C# 提供哪些运算符来处理空值?

C# mempunyai tiga pengendali berikut untuk mengendalikan nilai nol -

Null Coalescing Operator (??)

membolehkan anda mendapatkan nilai pembolehubah jika ia bukan nol, atau nyatakan nilai lalai yang boleh digunakan.

Ia menggantikan ungkapan berikut -

string resultOne = value != null ? value : "default_value";
Salin selepas log masuk

dalam C# dengan ungkapan berikut -

string resultTwo = value ?? "default_value";
Salin selepas log masuk

Berikut ialah contoh yang menggambarkan perkara ini.

Contoh

using System;
class Program{
   static void Main(){
      string input = null;
      string choice = input ?? "default_choice";
      Console.WriteLine(choice); // default_choice
      string finalChoice = choice ?? "not_chosen";
      Console.WriteLine(finalChoice); // default_choice
   }
}
Salin selepas log masuk

Pengendali tugasan gabungan null (??=)

Mengembalikan nilai di sebelah kiri jika ia bukan nol. Jika tidak, ia mengembalikan nilai di sebelah kanan. Dalam erti kata lain, ia membolehkan anda memulakan pembolehubah kepada beberapa nilai lalai jika nilai semasanya adalah batal.

Ia menggantikan ungkapan berikut dalam C# -

if (result == null)
result = "default_value";
Salin selepas log masuk

Gunakan ungkapan berikut.

result ??= "default_value";
Salin selepas log masuk

Pengendali ini berguna untuk sifat yang dikira secara malas. Contohnya -

Contoh

class Tax{
   private Report _lengthyReport;
   public Report LengthyReport => _lengthyReport ??= CalculateLengthyReport();
   private Report CalculateLengthyReport(){
      return new Report();
   }
}
Salin selepas log masuk

Null Conditional Operator (?.)

Operator ini membenarkan anda memanggil kaedah dengan selamat pada contoh. Jika contoh itu batal, kembalikan nol dan bukannya membuang NullReferenceException. Jika tidak, ia hanya memanggil kaedah.

Ia menggantikan ungkapan berikut -

string result = instance == null ? null : instance.Method();
Salin selepas log masuk

dalam C# dengan ungkapan berikut -

string result = instance?.Method();
Salin selepas log masuk

Pertimbangkan contoh berikut.

Contoh

using System;
string input = null;
string result = input?.ToString();
Console.WriteLine(result); // prints nothing (null)
Salin selepas log masuk

Contoh

Demonstrasi masa nyata

using System;
class Program{
   static void Main(){
      string input = null;
      string choice = input ?? "default_choice";
      Console.WriteLine(choice); // default_choice
      string finalChoice = choice ?? "not_chosen";
      Console.WriteLine(finalChoice); // default_choice
      string foo = null;
      string answer = foo?.ToString();
      Console.WriteLine(answer); // prints nothing (null)
   }
}
Salin selepas log masuk

Output

default_choice
default_choice
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah pengendali yang disediakan oleh C# untuk mengendalikan nilai nol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan