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).这样能区分吗?
编译器提示错误。 展开
A(int a=1){}
A(int a=2){}
A(int a=3){}
调用的时候就是A(1).这样能区分吗?
编译器提示错误。 展开
5个回答
展开全部
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#有关方法重载的一些资料看看。
展开全部
不能区分,参数类型都是int类型,可以定义
A(int a=1){}
A(string a="1"){}
这样就是两种函数了
A(int a=1){}
A(string a="1"){}
这样就是两种函数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能区分,建议
A(int a=1,string type){
if(type=="1")
{
}
if(type=="2")
{
}
if(type=="3")
{
}
}
A(int a=1,string type){
if(type=="1")
{
}
if(type=="2")
{
}
if(type=="3")
{
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然区分不了,直接A(int a){};调用A(1)或A(2)或A(3)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能 这样不是重载
对 1 2 3 的判断 可以放到方法中
用switch分支实现
对 1 2 3 的判断 可以放到方法中
用switch分支实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询