c#自定义函数默认参数值?

有三个功能类似的函数。A(inta=1){}A(inta=2){}A(inta=3){}调用的时候就是A(1).这样能区分吗?编译器提示错误。... 有三个功能类似的函数。
A(int a=1){}
A(int a=2){}
A(int a=3){}
调用的时候就是A(1).这样能区分吗?
编译器提示错误。
展开
 我来答
百度网友9095754
推荐于2016-09-24 · TA获得超过2574个赞
知道小有建树答主
回答量:905
采纳率:0%
帮助的人:1083万
展开全部
1、C#的参数没有默认值,A(int a=1)这样的写法是不能通过编译的。
2、要区分二个方法是不同的,那必须保证方法名是不同的或者方法名相同,但方法参数声明是不同的。
其实你的问题应该是“方法重载”方面的问题。如果功能相同的多个方法,但只是方法参数有区别,可以使用“方法重载”。比如:
//方法A,一个int参数
void A(int a){}
//下面这个是重载A方法,且将a的参数a设置为1,也以此达到默认值的效果
void A():A(1){}
我不知道有没有说清楚,不过,C#中默认参数的问题需要用方法重载来实现,你可以搜索一下C#有关方法重载的一些资料看看。
lifeng4015
2010-05-18 · TA获得超过111个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:192万
展开全部
不能区分,参数类型都是int类型,可以定义
A(int a=1){}
A(string a="1"){}
这样就是两种函数了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
片荒推荐
2010-05-18 · 超过17用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:34.9万
展开全部
不能区分,建议
A(int a=1,string type){
if(type=="1")
{

}
if(type=="2")
{

}
if(type=="3")
{

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuejianxiyang
2010-05-18 · TA获得超过694个赞
知道小有建树答主
回答量:357
采纳率:0%
帮助的人:119万
展开全部
当然区分不了,直接A(int a){};调用A(1)或A(2)或A(3)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掌经财富
2010-05-18 · TA获得超过272个赞
知道答主
回答量:49
采纳率:0%
帮助的人:50.9万
展开全部
不能 这样不是重载

对 1 2 3 的判断 可以放到方法中

用switch分支实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式