Błąd kompilatora CS0460
Ograniczenia dotyczące zastępowania i jawnych metod implementacji interfejsu są dziedziczone z metody podstawowej, więc nie można ich określić bezpośrednio
Gdy metoda ogólna, która jest częścią klasy pochodnej zastępuje metodę w klasie bazowej, nie można określić ograniczeń dla metody przesłoniętej. Metoda zastąpienia w klasie pochodnej dziedziczy jej ograniczenia z metody w klasie bazowej.
Poniższy przykład generuje plik CS0460.
// CS0460.cs
// compile with: /target:library
class BaseClass
{
BaseClass() { }
}
interface I
{
void F1<T>() where T : BaseClass;
void F2<T>() where T : struct;
void F3<T>() where T : BaseClass;
}
class ExpImpl : I
{
void I.F1<T>() where T : BaseClass {} // CS0460
void I.F2<T>() where T : class {} // CS0460
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: