【发布时间】:2014-04-05 20:34:07
【问题描述】:
假设我有以下对象:
object[] objs = new object[3]{ "this is sample string", 42L, 1};
我想对数组中的单个对象做一些事情,比如
foreach (object o in objs)
{
/// logic here
mylogic();
}
现在mylogic() 将只接受对象参数,因此正在进行装箱,但我们需要能够根据对象的类型做一些事情,所以我们会做类似的事情:
public void dosomething(object obj)
{
// one way
if(obj.GetType() == typeof(string))
{
// string specific something
}
// another way
if(obj is long)
{
// long specific something
}
}
嗯,它很丑而且没有性能,有没有更好的方法可以使用泛型或任何其他方式?
【问题讨论】:
-
丑陋开始于object[] objs = new object[3]
标签: c# .net asp.net-mvc c#-4.0 generics