C#: 给方法传递参数

1. 参数通过引用传递给方法时,被调用的方法得到的就是这个变量,所以在方法内部对变量进行的任何改变在方法退出后仍旧发挥作用。

2. 参数通过值传递给方法时,被调用的方法得到的是变量的副本,也就是说,在方法退出后,对变量进行的修改会丢失。

注意:字符串是不同的,因为字符串是不能改变的(如果改变字符串的值,就会创建一个全新的字符串), 所以字符串无法采用一般引用类型的行为方式。在方法调用中,对字符串所做的任何改变都不会影响原来的字符串。

3. ref参数:如果把一个参数传递给方法,且这个方法的输入参数前带有ref关键字,则该方法对变量所做的任何改变都会影响原来对象的值

4. Out关键字:是用out关键字来初始化。在方法的输入参数前面加上out关键字时,传递给该方法的变量可以不初始化。该变量通过引用传递。

ref是有进有出,out是只出不进。

using System;

namespace ConsoleApplication3
{
class Program
{
static void SomeFunction(out int i)
{
i = 100; //Note how i is declared but not initialized
}
static void Main(string[] args)
{
int i;
SomeFunction(out i);
Console.WriteLine(i);
}
}
}

5. 方法的重载:方法名相同,但是参数的个数和类型不同

对于方法重载来说,如果调用了错误的重载方法,就可能出现运行错误:

  • 两个方法不能仅在返回类型上有区别
  • 两个方法不能仅根据参数是声明为ref还是Out来区分
原文地址:https://www.cnblogs.com/LilianChen/p/2750431.html