方法是把一些相关的语句组织在一起, 用于执行一个任务的语句块. 方法的创建和调用的方法与其他语言类似, 例如:
- using System;
- namespace CalculatorApplication
- {
- class NumberManipulator
- {
- public int FindMax(int num1, int num2)
- {
- /* 局部变量声明 */
- int result;
- if (num1> num2)
- result = num1;
- else
- result = num2;
- return result;
- }
- static void Main(string[] args)
- {
- /* 局部变量定义 */
- int a = 100;
- int b = 200;
- int ret;
- NumberManipulator n = new NumberManipulator();
- // 调用 FindMax 方法
- ret = n.FindMax(a, b);
- Console.WriteLine("最大值是: {0}", ret);
- Console.ReadLine();
- }
- }
- }
不过 C# 的方法和其他语言还是有些不同的, 或者说是有自己的特色. 在 C# 中, 方法的参数传递并不是只有 1 种, 而是有 3 种:
值参数
引用参数
输出参数
[1] 值参数
值参数是参数的默认传递方式. 当调用一个方法时, 会为每个值参数创建一个新的存储位置. 实参的值会复制给形参, 所以当形参发生改变时, 实参不会受到影响. 例如:
- public void swap(int x, int y) // 这个函数的交换变量完全没用, 因为只交换了形参
- {
- int temp;
- temp = x;
- x = y;
- y = temp;
- }
[2] 引用参数
引用参数使用 ref 关键字声明形参. 引用参数是对一个变量的内存位置的引用, 形参与实参具有相同的内存位置. 换而言之, 对形参做出的任何修改都会影响到实参, 类似于指针的效果. 例如:
- public void swap(ref int x, ref int y) // 这个函数的交换变量是有用的
- {
- int temp;
- temp = x;
- x = y;
- y = temp;
- }
[3] 输出参数
输出参数使用 out 关键字声明形参. 一般来说, return 语句只能从函数中返回一个值, 但使用输出参数就可以让函数返回多个值. 输出参数会把方法输出的数据赋值给自己, 其余内容与引用参数类似. 例如:
- public void getValue(out int x) // 修改传进来的参数, 并返回
- {
- int temp = 5;
- x = temp;
- }
- static void Main(string[] args)
- {
- int a = 100;
- n.getValue(out a); // 把原本为 100 的 a 传递给函数, 然后 a 的值变成 5 了
- }
来源: http://www.bubuko.com/infodetail-3048365.html