Peringatan pengompilasi (level 1) CS1720
Ekspresi akan selalu menyebabkan System.NullReferenceException karena nilai default 'jenis generik' adalah null
Jika Anda menulis ekspresi yang melibatkan default variabel jenis generik yang merupakan jenis referensi (misalnya, kelas), kesalahan ini akan terjadi. Pertimbangkan ekspresi berikut:
default(T).ToString()
Karena T
adalah jenis referensi, nilai defaultnya adalah null, sehingga mencoba menerapkan metode ToString ke dalamnya akan melemparkan NullReferenceException.
Batasan referensi kelas pada jenis T
memastikan bahwa T
adalah jenis referensi.
Sampel berikut menghasilkan CS1720.
// CS1720.cs
using System;
public class Tester
{
public static void GenericClass<T>(T t1) where T : class
{
Console.WriteLine(default(T).ToString()); // CS1720
}
public static void Main() {}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: