Błąd kompilatora CS0456
Parametr typu "Nazwa parametru typu 1" ma ograniczenie "struktura", więc "Nazwa parametru typu 1" nie może być używany jako ograniczenie dla parametru "Nazwa parametru typu 2"
Ograniczenia typu wartości są niejawnie zapieczętowane, dlatego te ograniczenia nie mogą być używane jako ograniczenia dla drugiego parametru typu. Dzieje się tak, ponieważ nie można zastąpić typów wartości. Aby rozwiązać ten błąd, należy umieścić ograniczenie typu wartości bezpośrednio w drugim parametrze typu, zamiast robić to pośrednio za pomocą pierwszego parametru typu.
Poniższy przykład generuje plik CS0456.
// CS0456.cs
// compile with: /target:library
public class GenericsErrors
{
public class G5<T> where T : struct
{
public class N<U> where U : T {} // CS0456
public class N2<U> where U : struct {} // OK
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: