Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


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.

Przykład

Poniższy przykład generuje plik CS0456.

C#
// 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  
   }  
}