假設我有以下對象:如何避免拳擊和if或switch語句
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
}
}
嗯,它的醜陋和非性能,是否有更好的方式可能使用泛型或任何其他方式?
在對象上開始醜陋[] objs = new object [3] – Paparazzi