日期:2014-05-19  浏览次数:20880 次

方法值传递问题?
请问一下在C#里
x(int   x   ,string   y,   ……,object   mm)
{

}
main()
{
    x();//这里调用并什么传递时,我只想传递string和object的值,其它的不传
            //在这个括号里该怎么写啊
}

大家有什么办法吗

------解决方案--------------------
调用方法时,传进的值必须和方法体参数列表对应
弱类型语言的另当别论
------解决方案--------------------
C#里,你说的不行。
不过可以用参数数组来解决
这个参数必须是函数定义中的最后一个。用params来标识。
比如说 void func(params int[] val);
你可以用任意个int 参数来调用这个函数。

你那种形式的可以都写成objcet[] 参数,用到参数的地方拆下箱就可以了。
------解决方案--------------------
c#里面不行
可以用重载:
void x(int x ,string y, ……,object mm)
{
}
void x(int x,object mm)
{
x(x,string.Empty,...,mm);
}


------解决方案--------------------
C#用重载来解决默认值的问题
是特意这样设计的。
即再提供一个没有int的方法重载。
------解决方案--------------------

c#里面不行
可以用重载:
void x(int x ,string y, ……,object mm)
{
}
void x(string y,object mm)
{
x(0,y,...,mm);
}