Pemprosesan nilai pulangan kaedah generik C#
Dalam C#, apabila mentakrifkan kaedah generik, jika parameter jenis T ialah jenis nilai (seperti int atau struktur), mengembalikan null akan menyebabkan ralat penyusunan, kerana null tidak boleh diberikan kepada jenis nilai.
Penyelesaian
Terdapat beberapa cara untuk menyelesaikan masalah ini:
default(T)
untuk mengembalikan nilai lalai parameter jenis T. Untuk jenis rujukan, null dikembalikan untuk integer, sifar dikembalikan, dan seterusnya. where T : class
untuk mengehadkan parameter jenis T kepada jenis rujukan. Dengan cara ini null boleh dikembalikan tanpa ralat. where T : struct
dan mengembalikan nol daripada kaedah dengan pulangan jenis T?
. Ini mewakili nilai nol jenis nilai bukan nol. Contoh:
<code class="language-csharp">static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach (T thing in collection) { if (thing.Id == id) return thing; } return default(T); // 返回类型T的默认值 }</code>
Pilih kaedah yang paling sesuai dengan keperluan khusus anda, dan pastikan nilai pulangan konsisten dengan jenis dan kebolehbatalan yang dijangkakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Nilai dengan Selamat daripada Kaedah Generik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!