C#学习笔记--方法和参数修饰符

一、学习内容

构造C#方法的各种细节;

out、ref和params关键字;

.net 4引入的新特性:可选参数和命名参数。

 

二、方法的参数修饰符

1.无修饰符

一个方法的参数没有用参数修饰符标记,则它将按值传递,这意味着被调用的方法将得到它的一个副本。

这是最普通、常见的一种参数标记形式。

 

2.out修饰符

当用out修饰某个参数时,相当于该参数是这个方法的输出参数;

它是按照引用传递,而非按值传递;

被调用的方法必须为该参数赋值,否则在编译时就会报错;

调用一个有out参数的方法时,也必须使用out修饰符;

调用一个有out参数的方法时,可以不事先为该参数赋值,因为被调用方法会为它赋值;

它最重要的应用是:可以在一个方法中返回多个值。

 

3.ref修饰符

这是一种按引用传递值的方法‘;

如果你希望传递给被调用方法的参数会在方法中改变值,而不是一个副本的话,可以将该参数声明为ref;

此参数在方法调用前必须已经赋值,与out修饰符截然不同;

 

4.params修饰符

把可变数量的参数(这些参数应该是相同类型)作为单个逻辑参数传给方法,类似于数组;

被调用方法中应该把params修饰的参数当做一个数组来处理,同时支持0个输入参数;

一个方法最多只能支持一个params参数,且该参数必须是参数列表中的最后一个参数;

这项技术只是方便了调用者。

 

三、.net 4 新特性

1.可选参数

就是只某个参数在方法声明中已经指明了具有某个默认值;

可选参数的值必须在编译时就能确定,而不能在运行时确定,否则编译报错;

可选参数若放在非可选参数的前面也将导致编译报错。

 

2.命名参数

允许在调用方法时以任意顺序指定参数的值;

在调用的过程中,命名参数必须放在方法调用的最后;

可选参数往往和命名参数一起使用;

 

可选参数和命名参数的支持主要是为了简化与COM的互操作。

 

成员重载:

确保每个方法都有不同的参数组:个数不同,或类型不同;只是返回类型不同的成员不够唯一,不满足条件。

 

你可能感兴趣的:(C#学习笔记--方法和参数修饰符)