永发信息网

C# 泛型函数参数 传递给重载函数的问题

答案:3  悬赏:70  手机版
解决时间 2021-11-15 23:53
C# 泛型函数参数 传递给重载函数的问题
最佳答案
对于dll里重载的fun来说每一个都是指定了明确的参数类型的,例如:
bool fun(int param);
bool fun(string param);  这时回到你写的泛型可以看到T是一个未知的类型,可想而知fun(t)这样的调用,对于fun来说并不能有明确的参数类型,所以fun不知道调用哪个重载方法。
  因此如果你非要这么做,只能在Fun方法里写转换
  比如:
        public bool Fun(T t)
        {
            Type type = typeof(T);
            switch (type.ToString())
            { 
                case "System.Int32":
                    return fun((int)t);
                case "System.String":
                    return fun(t.ToString());
                default:
                    return false;
            }
        }追问谢谢你的回答,这的确是一种方法。因为fun函数的参数只是内置类型,所以我本来希望避免使用object类型作为参数,从而带来不必要的装箱和拆箱开销,现在看开即使使用泛型,在遇到这种情况仍然需要在函数内部进行类型判断,仍然会有拆箱的开销,不知道我说的对不对。如果是这样,我只好多谢几个Fun函数的重载了。
全部回答
把dll的fun的所有重载的函数声明都贴出来看。
我暂时保留意见!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当你的名字从昵称变成全名
跪求澄海3c5.45秘籍
梁河有什么好玩的地方
为什么有的道旗厂家的道旗价格有点贵
一没有亲二也没有故是什么戏曲中的台词
有没有人在长投学堂那学习过,好不好?
请问2o13款日产天簌在息、,火后车窗可不可以
威力游戏厅地址在哪,我要去那里办事,
从石羊场公交站到视窗眼镜(太升南路店)怎么
气虚跟奶水不足有关系吗
三国中刘备骑的是什么马
高新区任城大道与洸府河交汇处西临 邮编多少
蓄电池12v32ah150a什么意思
我想知道gucci envy系列黄色的那种香水是不是
上面一双眼睛下面三只手打一成语
推荐资讯
有一根绳子长二分之十一分成八段花了五分之十
我买网免费送三只松鼠大礼包是真是假
求一个关于EXO的橙光游戏,有狼,噬魂者什么
证明x>0且y>0成立的充要条件是x+y>0且xy>0
新颖干洗店(明翰路11-4)地址在哪,我要去那里
百姓理发店地址在什么地方,想过去办事,
企业开具空头支票被罚款,款项打给对方企业,
东奥注会公司战略与风险管理怎么有两个老师的
帮我把第二张图片改成第一张图片里的时间
三门峡红旗社区二期工程什么时候开工
清明节开山什么意思
航模苏27转弯是不是先倾斜然后再拉上升
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?