读书人

能不能把object转成它的GetType的门类

发布时间: 2012-11-06 14:07:00 作者: rapoo

能不能把object转成它的GetType的类型
遇到个问题就是
Func( IList l )//不带<T>在VS08能编译...貌似在10 就不行了..
{
foreach( object i in l )//var i in l 也不行
{
// 其实就这里想要跟着List中的元素不同调不同的重载函数
//这里的i.GetType 是正确的List中的类型
//Func( i ); //这里编不过 如果Func( (i.GetType)i ) 能不能到这个效果 或其他的办法
}
}
Func( int i ){}
Func( string s ){}
//...其他的重载

int [] arr = { 1,2 };
Func( arr );

Anyone can help me...

[解决办法]

C# code
foreach (object i in l){    switch (i.GetType().FullName)    {        case "System.Int32":            Func((int)i);            break;        case "System.String":            Func((string)i);            break;        default:            break;    }}
[解决办法]
方法有3种:
一、笨办法,用if判断类型后,强制类型转换,如果你的类型不是很多,这种方法非常适合。
二、用接口进行转换,所有自定义类派生于统一的接口,实现公共方法。
三、用Emit动态创建你所谓的Func函数。

读书人网 >C#

热点推荐