如何根据对象类型转换为对象类型?

时间:2016-04-14 17:01:42

标签: c# reflection gettype object-type

我想避免使用特定类型(以前我是如何做的)

var obj = new List<Category>();
obj = (List<Category>)EasyCache.Instance.Item(cacheKey)

类似于:obj =( obj.GetType()??? )EasyCache.Instance.Item(cacheKey)

2 个答案:

答案 0 :(得分:1)

如果您不想在作业中重复类型名称,您可以将声明与作业结合起来:

var obj = (List<Category>)EasyCache.Instance.Item(cacheKey)

请注意,您创建的空List<Catgeory>将被丢弃,因为您在下一行中覆盖它。您似乎只是为了在声明中使用var而创建一个新的。

vardynamic是很棒的工具,但它们不应该用于替换静态类型检查。

答案 1 :(得分:-1)

您可以使用

obj = (dynamic)EasyCache.Instance.Item(cacheKey);

这不是一个好方法,但它应该有用。