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来区分

相关文章:

  • 2022-12-23
  • 2021-06-18
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
  • 2021-12-07
  • 2021-09-03
猜你喜欢
  • 2022-12-23
  • 2021-09-24
  • 2021-05-31
  • 2021-08-23
  • 2021-08-22
  • 2022-12-23
  • 2022-02-10
相关资源
相似解决方案