首页 新闻 会员 周边 捐助

在C#中,需求是这样的,现在编写一个方法,但是搞方法的参数有些可能有可能没有。

0
[已解决问题] 解决于 2016-06-15 16:06

如标题需求,我使用了params关键字,后跟一个string数组, 但是在调用的时候,数组中的元素位置必须与方法中的string数组的元素位置一一对应。这样的话出现的问题就是其他调用者可能一时间不理解该可变参数中的数组的元素位置,对应的是那些实参。这样就有了麻烦。

有没有一种方式:可以实现参数可变,然后多个可变的参数又能有提示,比如说第一个可变参数是学生班级的名称,第二个是班级的ID等等。

 

请求大神帮忙解答一下。

奇妙能力的主页 奇妙能力 | 菜鸟二级 | 园豆:253
提问于:2016-06-15 14:52
< >
分享
最佳答案
0

可以考虑使用缺省参数,参考:谈谈C# 4.0新特性“缺省参数”的实现

奖励园豆:5
dudu | 高人七级 |园豆:29570 | 2016-06-15 15:03

缺省参数确实是个好办法, 如我这么写, public stringBuild GetCondtion(string shiftname,classname="",classid="",classAlias="")。那么在方法体中 if(string.isNullOrEmpty)关于班级的筛选添加就不添加到stringbuild中,不知老哥是否是这个想法?

奇妙能力 | 园豆:253 (菜鸟二级) | 2016-06-15 15:38

上面的string.isNullOrEmpty未加参数, 不好意思,  参数应该是classid,

奇妙能力 | 园豆:253 (菜鸟二级) | 2016-06-15 15:39

@奇妙能力: 是的

dudu | 园豆:29570 (高人七级) | 2016-06-15 15:58
其他回答(1)
0

你可以搜索一下 C# overload 相关的知识。

Member Overloading

 

或者看看MSDN说的这篇文章

Named and Optional Arguments (C# Programming Guide)

当然,买本《C#从入门到精通》看看可以学到一些光靠搜索学不到的知识。

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-06-15 15:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册