散分 , & 一个语法问题吧 ~`
有一个函数 A(int a1,string a2)
然后想要调用他 . 但是调用的时候需要做一下判断
如果 a1 是 xxx 的时候 就要用另外的值 c // c 不是和a1 是同一个类型
我不想这么写 :
if (a1 == xxx)
a(c,a2)
else
a(a1,a2)
我想 这么 a( ????? ,a2) 写
有人能知道 ???? 里面应该填什么么 ...
[解决办法]
a(a1==xxx?c:a1,a2) ?
这样写不行的, ?运算符, 结果类型要求一致, c和a1不是同类型.
[解决办法]
没辙,
想想就算写成一行了```估计生的IL也不会少吧```
[解决办法]
有点不理解搂主的目的,c不是和a1是同一个类型,那如果要调用函数A,c总要能够转换成int的。
A(a1==xxx ? (int)c : a1,a2) ?
[解决办法]
很简单,写重载1 A(int a1,string a2) ,2 A(string c,string a2)
调用时判断,
if (a1 == xxx)
a(c,a2) //方法2
else
a(a1,a2)
[解决办法]
jf
[解决办法]
楼主说了:
-----------------------
我不想这么写 :
if (a1 == xxx)
a(c,a2)
else
a(a1,a2)
-----------------------
说明这样写是能通过编译的,也就是说c能够转换成int,只是搂主想要写在一个调用里面。是不是这个意思?...
[解决办法]
jeremyyang824 wrote
--------------------------------
楼主说了:
-----------------------
我不想这么写 :
if (a1 == xxx)
a(c,a2)
else
a(a1,a2)
-----------------------
说明这样写是能通过编译的,也就是说c能够转换成int,只是搂主想要写在一个调用里面。是不是这个意思?...
---------------------------------
这样理解是不行的.
如果c能转换成int,那楼主又何必多此一问.
很明显 方法 a 有两个重载.
[解决办法]
接分~
[解决办法]
呵呵 所以我才说有点不太明白搂主的意思啊...
[解决办法]
200分,楼主阔气啊。。。
[解决办法]
c是什么类型的呀~
[解决办法]
接分。。。
[解决办法]
C#是强类型语言. 用哪个重载必须是编译时就能确定的. 要求运行时决定是不可能的.
[解决办法]
凑个热闹,接分
[解决办法]
直接来个强转看 a(a1.toInt32(),a2);
试试看,我没试过.
[解决办法]
用工厂模式实现
[解决办法]
关注!
[解决办法]
你变来个Object类型嘛
[解决办法]
up
[解决办法]
a(a1.toInt32(),a2);
[解决办法]
把每个类型都重载
1 A(int a1,string a2) {}
2 A(string c,string a2) {}
3.
4.
......
[解决办法]
jf
------解决方案--------------------
判断类型:
A(object a1,string a2)
{
if(a1.GetType().ToString()=="System.Int32")
{
.....
}
else if(a1.GetType().ToString()=="System.String")
{
.....
}
.
.
.
.
}
[解决办法]
A(object a1,string a2)
{
if(a1.GetType()==typeof(Int32))
{
.....
}
else if(a1.GetType() ==typeof(xx))
{
.....
}
.
.
.
.
}
这个我已经用过了。赫赫我用的那个是用了一个接口,然后判断是哪一个类的。大同小异了。
[解决办法]
还是直接接分吧
[解决办法]
进来接分,多谢
[解决办法]
up
[解决办法]
纯粹接分
看不出有什么实用性
[解决办法]
不过楼主的要求好像要重载很多函数啊。你要???返回的类型不同,那么你就的有N各相对应得函数。要么你就德在函数里面做。
[解决办法]
困难的问题~~~
进来学习一下~~`
接接分
[解决办法]
声明个object参数或者用接口吧。
[解决办法]
jf
[解决办法]
接分 关注一下!
[解决办法]
不好弄啊
看看高手能否解决 学习一下
lye2000000_super 那段代码都到函数里面了
估计不是楼主需要的
[解决办法]
如果每次调用都要判断,那么楼主为什么不把这个判断放到A(int a1, string a2)中呢?
写成这样:
void A(int a1, string a2){ if (a1 == xxx) { A(c, a2) }}
[解决办法]
这个又没有什么关系的,函数的重载啊~~~~~~~~~~
[解决办法]
用泛型
[解决办法]
纯手工接分
能用简单明了的方法解决,为什么还选其他别扭的方法?
[解决办法]
泛型
void f()
{
a(1, "b");
}
void a<T>(T c, string b)
{
if (c is Int32)
{
}
else if (c is String)
{
}
}
[解决办法]
分砸下来吧
[解决办法]
a1和C不同类型就可以了,多态吧
[解决办法]
劳资信了你们滴邪!什么都跑出来了。
[解决办法]
jf learning..
[解决办法]
能用简单明了的方法解决就很不错啦
[解决办法]
接分吧
[解决办法]
看访问者模式
------解决方案--------------------
public void methodname( object[]);
自己再拆。
[解决办法]
或者public void methodname( object o1,Type t1,String param2);
[解决办法]
再者,定义一个接口,然后反射之。
最狠的就用反射发出,或者是Castle里的动态代理实现之。
[解决办法]
学习
[解决办法]
编程的就是这么牛的
[解决办法]
学习+接分
[解决办法]
就是那个三元运算符吗
[解决办法]
把每个类型都重载
1 A(int a1,string a2) {}
2 A(string c,string a2) {}
3.
4.
......
[解决办法]
接分~~
[解决办法]
狂重载啊!
A(int a1,string a2)
A(string c, string a2)
if(a1 == xxx)
A(c,a2)
else
A(a1,a2)
[解决办法]
up
[解决办法]
jf
[解决办法]
JF。。。。。
[解决办法]
乱~!~!
[解决办法]
什么呀
[解决办法]
没回答也接分.......狂汗ING...
LEARNING来的
[解决办法]
全手工接分
[解决办法]
.NET1.1 重载
不麻烦!你看看Convert.ToInt32()的重载就知道了
.NET2.0 泛型
也可以实现。
[解决办法]
接分
[解决办法]
.....
[解决办法]
可以写一个重载,根据参数类型或个数的不同进行重载
[解决办法]
74楼了,结贴吧
[解决办法]
呵呵,友情UP一下
LZ还是先试着写写吧,有问题还可以贴出来大家讨论,光靠这么想着,问题多着呢
还是想清楚了,去试着写写
好脑袋不如烂笔头啊
[解决办法]
^_^
[解决办法]
我看基本能够想到的都已经说了;lz应该说出需求,设计我们来看看怎么做好
[解决办法]
jf
[解决办法]
这里还能接到分吗?