Baca dalam bahasa Inggris

Bagikan melalui


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.

Contoh

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() {}  
}