Číst v angličtině

Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) CS1720

Výraz vždy způsobí System.NullReferenceException, protože výchozí hodnota generického typu má hodnotu null.

Pokud napíšete výraz zahrnující výchozí proměnnou obecného typu, která je odkazovým typem (například třída), dojde k této chybě. Vezměte v úvahu následující výraz:

default(T).ToString()  

Vzhledem k tomu T , že je typ odkazu, jeho výchozí hodnota je null, a proto se pokusí použít metodu ToString na ni vyvolá NullReferenceException.

Příklad

Omezení odkazu na třídu pro typ T zajišťuje, že T je to typ odkazu.

Následující ukázka vygeneruje 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() {}  
}