【发布时间】:2010-12-09 10:58:29
【问题描述】:
我正在尝试创建一个通用方法来投射一个对象,但似乎无法破解那个栗子。 (现在是星期五下午 3 点,这是漫长的一周)
好的,所以我有这个场景:
// We have a value (which .net sets as a double by default)
object obj = 1.0;
// We have the target type as a string, which could be anything:
// say string sometType = "System.Decimal"
Type type = Type.GetType(someType);
// I need a generic way of casting this
object castedObj = (xxx) obj;
我如何才能在不创建无数 if-else-staments 的情况下通用地转换该对象?
【问题讨论】:
-
您想将其类型转换为
type变量所代表的类型吗?您将如何声明 castedObj?即你会给它什么类型?如果你将它存储为一个对象,那么类型转换是没有意义的...... -
您不能将装箱的 int 转换为除 int(或 int?)以外的任何结构类型(有关详细信息,请参阅blogs.msdn.com/ericlippert/archive/2009/03/19/…。)如果您需要这样做,那么您需要使用除演员。