Я столкнулся со странной проблемой при использовании дженериков.Следующий код выдаст InvalidCastException
, хотя ясно, что int
может быть приведен к double
.Кто-нибудь может объяснить это поведение и как его обойти?
public class TestClass<T>
{
public T Cast(object o)
{
return (T)o;
}
}
public void Main()
{
TestClass<double> w = new TestClass<double>();
double x = w.Cast(10);
}
Редактировать:
Так как я нахожусь в .net 4.0 land, я все же изменил его, чтобы использовать 'динамический »вместо« объект », и все работает, как ожидалось.Цените все оперативные и быстрые ответы.