黑马程序员技术交流社区

标题: C#里的命名参数,可选参数,可选数组参数深入解析 [打印本页]

作者: 易孟飞    时间: 2014-10-8 17:37
标题: C#里的命名参数,可选参数,可选数组参数深入解析
1,可选参数是指在声明函数时,用已经赋值的参数,调用时可以不指定这些参数,只对值类型有效,这些产数必须排列在函数形参列表的最后(当有可选数组形参时,排放在倒数第二)

2,命名参数是指在调用时,通过指定参数名,来提高可读性进行调用的一种方式,并且,这个时候调用不再要求形参顺序,如果混合使用普通参数调用和命名参数,命名参数必须排列在实参表的最后。

3,数组可选参数,即用params修饰的参数,这个参数必须为数组类型,每个函数最多有一个这样的参数,调用这种参数的函数时,调用者可以传递给他多个参数,一般不要跟命名参数和可选参数放在一起,理由如下

(1)声明时,可以把可选参数和数组可选参数放在一起,(数组可选参数放在最后,他的前面放可选参数),但调用时的意义不大,还容易让人迷惑。从后向前看,可选数组参数只能放在最后,其次是可选参数(用赋值运算符声明的参数),然后是普通参数,可以看出,这里的可选参数几乎总是生效的,只要有数据,他就会捕获传给他的实参,然后剩余的实参才会被可选数组参数捕获,(也就是说,必须给可选参数传递数据,才能给可选数组参数传递数据)。当然,如果利用好这一点,其实也可以视这种情况为一个特性使用,例如有这样的需求,只有当用户提供可选参数是,才接受用户的其他参数,如果用户没有提供可选参数,则为用户提供一个默认的参数,除此之外其他什么信息什么都不接受,如果利用好这个特性,将会创建一个非常灵活的方法(在利用这个特性时,最好声明的可选参数,和可选数组参数类型不要兼容,这样可以避免用户调用出错,避免用户迷惑)。
(2)调用时,命名参数不能和可选数组参数一起使用,因为两者的要求都是必须放在最后。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2