大致就是有一个object类型的参数,在调用时遇到重载,目前只能根据类型直接进行强制转换,代码看起来很坑爹:
void text(object obj){
if(obj is int){
func((int)obj);
}
else{
func((string)obj)
}
}
只能这样了吗?是否有更合理的做法?
void DealObjectStr(ref object obj)//写一个方法处理object参数
{
int pp=0;
if(int.TryParse(obj.ToString(),ref pp))
{
obj=Convert.ToInt32(obj);
}else
{
object= obj.ToString();
}
}
DealObjectStr(ref obj);//调用方法前,先处理参数
func(obj);
只能这样!!!
或者你把text重载
void text(int param)
void text(string param)
.......
就是利用ref 参数的特点写个方法处理object类型的参数
用泛型啊 可以解决你的问题
void text(object obj){
dynamic d = obj;
func(d);
}