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