ja nie rozumiem, co się tu dzieje ...C# boks enum błąd z rodzajowych
Mam następujący błąd: Typ 'TestApp.TestVal'
nie może być używany jako typ parametru 'T'
w rodzaju generycznego lub metoda 'TestApp.SomeClass<T>'
. Nie ma konwersji boksu z 'TestApp.TestVal'
na 'System.IComparable<TestApp.TestVal>'
.
Ten błąd zdarza następującego kodu:
public enum TestVal
{
First,
Second,
Third
}
public class SomeClass<T>
where T : IComparable<T>
{
public T Stored
{
get
{
return storedval;
}
set
{
storedval = value;
}
}
private T storedval;
}
class Program
{
static void Main(string[] args)
{
//Error is on the next line
SomeClass<TestVal> t = new SomeClass<TestVal>();
}
}
Ponieważ enum jest int
domyślnie i INT implementować interfejs IComparable<int>
Wydaje się, że nie powinno być błąd ....
int wdrażają IComparable ale to nie znaczy, RandomEnumType implementuje IComparable . –
AakashM