有三个功能类似的函数。
A(int a=1){}
A(int a=2){}
A(int a=3){}
调用的时候就是A(1).这样能区分吗?
编译器提示错误。
c#自定义函数默认参数值?
答案:5 悬赏:10
解决时间 2021-12-29 23:08
- 提问者网友:无心恋土
- 2021-12-29 16:38
最佳答案
- 二级知识专家网友:苦柚恕我颓废
- 2021-12-29 17:18
1、C#的参数没有默认值,A(int a=1)这样的写法是不能通过编译的。
2、要区分二个方法是不同的,那必须保证方法名是不同的或者方法名相同,但方法参数声明是不同的。
其实你的问题应该是“方法重载”方面的问题。如果功能相同的多个方法,但只是方法参数有区别,可以使用“方法重载”。比如:
//方法A,一个int参数
void A(int a){}
//下面这个是重载A方法,且将a的参数a设置为1,也以此达到默认值的效果
void A():A(1){}
我不知道有没有说清楚,不过,C#中默认参数的问题需要用方法重载来实现,你可以搜索一下C#有关方法重载的一些资料看看。
2、要区分二个方法是不同的,那必须保证方法名是不同的或者方法名相同,但方法参数声明是不同的。
其实你的问题应该是“方法重载”方面的问题。如果功能相同的多个方法,但只是方法参数有区别,可以使用“方法重载”。比如:
//方法A,一个int参数
void A(int a){}
//下面这个是重载A方法,且将a的参数a设置为1,也以此达到默认值的效果
void A():A(1){}
我不知道有没有说清楚,不过,C#中默认参数的问题需要用方法重载来实现,你可以搜索一下C#有关方法重载的一些资料看看。
全部回答
- 1楼网友:瘾与深巷
- 2021-12-29 22:04
当然区分不了,直接A(int a){};调用A(1)或A(2)或A(3)
- 2楼网友:一个很哇塞的汉子
- 2021-12-29 21:28
不能区分,建议
A(int a=1,string type){
if(type=="1")
{
}
if(type=="2")
{
}
if(type=="3")
{
}
}
- 3楼网友:绝望伪装
- 2021-12-29 20:33
不能区分,参数类型都是int类型,可以定义
A(int a=1){}
A(string a="1"){}
这样就是两种函数了
- 4楼网友:我叫很个性
- 2021-12-29 18:54
就直接调用啊:
假设你定义了一个函数func(){....}
那么就在和这个函数同一个地方直接func();
你或者黏贴具体代码,我瞅瞅
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯