c#的函数支持默认参数值吗?
如题 问题点数:10、回复次数:14Top
1 楼earthharp(我老子是土匪)回复于 2002-05-12 16:12:01 得分 0
不支持Top
2 楼countryroad(宁静致远)回复于 2002-05-12 16:16:34 得分 0
如果我要这样使用的话,那该怎么做呢?Top
3 楼wl_95421(王磊)回复于 2002-05-12 16:46:42 得分 5
int myint=0;不就可以了吗Top
4 楼countryroad(宁静致远)回复于 2002-05-12 17:00:38 得分 0
你的意思是在参数列表中这样写吗?
譬如public void myfunc(int para,int myint=0);
这样不行的。
Top
5 楼wl_95421(王磊)回复于 2002-05-12 17:03:30 得分 0
你这是传参
当然不行
真的不明白你的意思
说清楚一点吧Top
6 楼countryroad(宁静致远)回复于 2002-05-12 17:15:22 得分 0
现有函数如下
public void myfunc(int para,int myint);
我希望调用的时候可以这样调用myfunc(para);
也就是myint可以是默认值,不用传参数。
当然传参数也是可以的,这时候函数内部就用传入的参数值。
这个在c++中很常用的。不知道c#中怎么用?
Top
7 楼Lostinet(Hello)回复于 2002-05-12 19:01:10 得分 0
重载和默认值冲突了。
所以C#选择重载。而不支持默认值。Top
8 楼countryroad(宁静致远)回复于 2002-05-12 19:31:20 得分 0
功能是冲突了,但是默认值使用起来方便啊。
真的不支持吗?
请高手分析一下两者的效率如何。
大家都弄个明白。Top
9 楼huolx(飞云)回复于 2002-05-12 20:39:00 得分 0
你可以这样写
public void myfunc(int para,int myint)
{
}
public void myfunc(int para)
{
myfunc(int para,0)
}
Top
10 楼huolx(飞云)回复于 2002-05-12 20:40:17 得分 0
上面错了一个地方
你可以这样写
public void myfunc(int para,int myint)
{
}
public void myfunc(int para)
{
myfunc(para,0)
}
Top
11 楼countryroad(宁静致远)回复于 2002-05-12 20:59:14 得分 0
我也是这样实现的,但这是重载阿。
功能虽然一样,但还是本质不同的。
不知道两者效率怎么样。Top
12 楼qqchen79(知秋一叶)回复于 2002-05-12 23:14:20 得分 5
.NET支持Default Parameter Value的,叫做optional parameter。
是C#的语法不支持这种特性。在VB.NET里可以实现。
效率方面,两者的运行性能几乎没有分别,只是overload需要多定义一个函数罢了。Top
13 楼countryroad(宁静致远)回复于 2002-05-13 10:39:34 得分 0
这样的话,只能用函数重载了?真的没有其他办法吗?Top
14 楼qqchen79(知秋一叶)回复于 2002-05-13 11:21:50 得分 0
在C#的确没有办法,但是可以用VB.NET/msil编写相应的module,然后再与C#的部分协同工作。
是不是太麻烦了?;)Top




