Mam ogólną metodę, która akceptuje "T" type
i jest to moduł wyliczający. Wewnątrz metody muszę wywołać metody klasy pomocniczej, a nazwa metody zależy od typu modułu wyliczającego.C# generyczne wyliczanie rzutowania do konkretnej wyliczki
public Meth<T> (T type) {
if (typeof(T) == typeof(FirstEnumType)) {
FirstEnumType t = ??? // I somehow need to convert T type to FirstEnumType
this.helperFirstCalcBll(t);
}
else
{
SecondEnumType t = ??? // I somehow need to convert T type to SecondEnumType
this.helperSecondCalcBll(t);
}
}
Dlaczego nie można po prostu rzucić go? – cubrr
'public Meth', ani razu. – Melvin
Dlaczego używasz ogólnej metody, kiedy nie chcesz pisać ogólnego kodu? Jeśli znasz już prawidłowy typ wyliczenia w czasie kompilacji, dlaczego wyrzucasz go do wysyłki w czasie wykonywania? Dlaczego po prostu nie nazwać przeciążonej metody konkretnym typem wyliczenia? – Luaan