翼度科技»论坛 编程开发 .net 查看内容

C#值传递引用传递

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
C#参数修饰

ref修饰符:

使用ref修饰符可以使参数成为一个引用类型,从而允许我们在函数中修改该参数的值。如果我们将一个变量传递给一个使用ref修饰符的参数,那么任何对该参数的修改都将影响到原始变量的值。例如:
  1. void MyFunction(ref int myParam)
  2. {
  3.    myParam = myParam * 2;
  4. }
  5. int myVar = 10;//必须要有初值
  6. MyFunction(ref myVar);
  7. // myVar的值现在为20
复制代码
out修饰符:

使用out修饰符也可以使参数成为一个引用类型,但它通常用于返回多个值。与ref不同,当我们使用out修饰符时,我们必须在函数中对该参数进行初始化。例如:
  1. void MyFunction(out int myParam)
  2. {
  3.    myParam = 10;
  4. }
  5. int myVar;//不一定需要初值,但需要在方法内修改或赋值
  6. MyFunction(out myVar);
  7. // myVar的值现在为10
复制代码
params修饰符:

使用params修饰符可以使函数接受可变数量的参数。该参数必须是数组类型,并且必须是函数的最后一个参数。例如:
  1. void MyFunction(params int[] myParams)
  2. {
  3.    foreach (int p in myParams)
  4.    {
  5.       Console.WriteLine(p);
  6.    }
  7. }
  8. MyFunction(1, 2, 3, 4, 5);
  9. // 输出1, 2, 3, 4, 5
复制代码
in修饰符:

使用in修饰符可以将参数声明为只读。这意味着函数不能修改该参数的值,并且可以使函数更加安全和可预测。例如:
  1. void MyFunction(in int myParam)
  2. {
  3.    // myParam = 20;  // 编译错误
  4. }
  5. int myVar = 10;
  6. MyFunction(in myVar);
复制代码
参数修改

out修饰参数必须要再方法内修改
ref可以修改也可以不修改
ref无法在方法调用时,直接创建参数,因为ref需要有初值才能调用, 因为直接创建ref参数不一定有给其赋值

来源:https://www.cnblogs.com/WoOD-outPut/archive/2023/03/10/17202087.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具