作者:浪子花梦,一个有趣的程序员 ~
我们在实际写代码的过程中,一个方法有多种的参数,那么这些参数又有哪些特性呢?此文章将带你走进 C# 方法参数的世界,文章将改变以往风格,文字尽量简洁一点,多以代码表示,希望您能够喜欢 . . .
默认参数 与 命名参数
当我们在实际的过程中,有的方法中的一些参数可能会一直用不到,但是这个参数我们必须的给它一个值,这时候我们就可以使用默认参数了,如下所示,我们默认给方法提供一个姓名与年龄,当我们需要改变的时候,就显示的更改实参,来更换形参即可:
有其它类似于 C++、Java 相关基础的同学,这方面的知识应该都能快速的理解,效果如下所示:
我们也可以显示的使用形参的名子,来随意的更改实参的顺序,如下所示:
效果如下所示:
ref 与 out 参数
ref 的使用情况如下所示:
将变量作为引用参数时,变量必须是有初始值的,且该变量可在方法中修改 . . .
out 的使用情况如下所示:
使用 out 的目的是从方法中获得该变量的一个值,理解起来比较容易,这里如果我们将两个方法重载一下会发现报错了,错误如下所示:
可变参数
可变参数的意思是参数的数量是不稳定的,可以有多个参数,是动态的一种情况,使用如下所示:
效果如下所示:
我们将参数的类型定义为 Object基类,这样不管实参是什么类型都可以接受,并且处理,我们只需要在 形参的前面加上 params 即可,就变成一个 可变参数了 . . .
注意一点:
调用参数数量可变的方法是对性能有所影响的(除非显式传递 null),毕竟数组在堆上开辟内存是比较浪费性能的,有兴趣的小伙伴可以自行查阅一下看看。解决这个问题的办法就是我们可以多定义几个重载的版本,如下所示(WriteLine 的重载版本):
参数 与 返回类型的设计规范
- 参数应使用弱类型参数
- 返回值应使用强类型
如下所示:
参数为最弱类型,这样我们可以接受很多种的类型进行处理,而返回值为强类型,应该我们需要一个确切的结果来证明我们所需要的东西 . . .