Desidero scrivere una classe generica che dovrebbe funzionare con i tipi byte
e ushort
. Quale vincolo dovrei usare per questa classe? Come posso rilevare la proprietà MaxValue
all'interno di questa classe?Rileva MaxValue del parametro generico
class MyClass<T> // where T: ???
{
void Foo()
{
int maxValue = T.MaxValue; // how can I do this?
}
}
Se la classe è stato creato con il tipo inaspettata, che non contiene proprietà MaxValue, non mi interessa - per esempio, posso buttare un'eccezione in fase di esecuzione.
Utilizzare un interruttore caso, nessun altro modo. poiché oltre ai tipi primitivi non esiste il concetto di MaxValue –