是的,ref和out关键字都是C#语言中用来传递引用类型参数的关键字。
传递变量时,C# 默认使用值传递。通过复制参数的值将值传递给函数,这样函数内参数的更改就不会影响原始变量。但是,在某些情况下,您可能需要更改函数内传递的参数,并使这些更改影响原始变量。在这种情况下,您必须使用ref 或out 关键字。
ref 关键字通常用于变量已经有初始值并且方法需要访问和修改原始值的场景。以下是ref 关键字的一些规则:
1、方法的参数必须初始化。
2. Ref 参数不能在方法内重新分配。 ref 是一个已经被赋予初始值的变量,因此不能再次对其进行赋值。
3. 访问ref 参数时,请确保为它们分配了值,并且必须在方法内调用它们之前对其进行初始化。
下面是使用ref 关键字的示例代码。
””
公共静态无效UpdateDogName(参考狗)
{
狗.name=\’Fido\’;
}
//使用
狗myDog=new Dog();
myDog.Name=\’漫游者\’;
UpdateDogName(ref myDog);
Console.WriteLine(myDog.Name) //输出Fido
””
out关键字通常用于返回多个值且需要在函数内初始化参数值的场景。以下是有关out 关键字的一些规则:
1. 输出参数必须在方法内初始化。
2、如果调用时out参数没有初始化,在方法调用前会出现编译错误。
3. out参数的值不能在方法内赋值。
以下是out 关键字的示例代码。
””
公共静态无效GetDogNameAndBarks(out string DogName, out int barks)
{
狗名=\’Rover\’;
树皮=5;
}
//使用
GetDogNameAndBarks(out string myDogName, out int myDogBarks);
Console.WriteLine(myDogName) //输出流动站。
Console.WriteLine(myDogBarks); //输出5
””
因此,ref 和out 都是用于影响传递的参数的应用程序语义关键字。其中ref比较重要,用于传递地址。也就是说,out 关键字用于函数。输出多个结果。相反,如果实参是值类型,并且需要更改值,则可以直接通过方法进行更改。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84972.html