C # Kelas generik: simpulkan tipe non-nullable dari parameter tipe nullable
Nov 05 2020
Saya menggunakan jenis referensi nullable C # 8.
Saya memiliki kelas generik yang mungkin menerima jenis referensi nullable sebagai parameter jenis.
Apakah ada cara untuk mendeklarasikan tipe non-nullable berdasarkan parameter tipe generik yang mungkin berupa tipe referensi nullable (atau bahkan struct Nullable)?
abstract class Selector<T>
{
T SelectedItem;
// how to make item parameter not nullable?
abstract string Format(T! item);
// how to make item parameter not nullable?
Func<T!, string> FormatFunction;
}
Jawaban
4 YairHalberstadt Nov 05 2020 at 15:46
Penggunaan DisallowNullAttribute:
using System.Diagnostics.CodeAnalysis;
abstract class Selector<T>
{
T SelectedItem;
public abstract string Format([DisallowNull] T item);
}
var selector = default(Selector<string?>)!;
selector.Format(null); //warning CS8625: Cannot convert null literal to non-nullable reference type.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'