[英]C# passing List parameter
如果我正在编写一个接受两个列表参数的方法,如下所示:
public void ModifyYourListsHere(List<MyClass1> list1, List<MyClass2> list2)
{
...add and remove from the lists
}
如果我想让调用者了解列表将被修改,我应该将它们作为ref
还是传递out
? 还是只需要记录该方法? 还是用户应该期望它们会被修改?
如果函数可以更改变量指向哪个列表,则调用ref,并且调用者应引用新列表。
如果函数返回一个新列表,则调用者在调用之前没有引用,请使用它。 仅在函数需要返回多个值时才应使用此选项。
如果List在函数调用之前始终存在,则不应使用ref
或out
。
如果您的函数修改了它作为参数接收的对象,请务必记录良好!
如果要修改第一个列表,则必须使用ref
关键字,并且调用方将知道他必须在列表之前使用ref
,否则该方法将以红线加下划线,表示存在错误。
您也可以使用ref关键字来传递引用类型。 通过引用传递引用类型,使调用的方法可以修改引用参数所引用的对象。 对象的存储位置作为参考参数的值传递给方法。 如果更改参数的存储位置,则更改基础参数的存储位置。 资料来源: MSDN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.