今天开发突然用到了ref和out,就说说这二者吧。
在C++语言中,传参方式有三种:传值、传址、传引用。但是在C#中传参方式只有传值和传引用两种。
传引用的方式便可借助关键字ref和out,两者最大的区别便是ref传递的参数必须先初始化,但是out(输出参数)不需要。
public void UpdateName(ref string name) {
name = “Sire”;
}
public void FoundName(string key, out GameObject target) {
if (dict.ContainsKey(key)) {
target = dict(key);
}
else {
target = null;
}
}
注意:在使用这两个关键字传参的时候,调用必须加上相应的关键字。
string name = “Sire”;
UpdateName(ref name);
string key = “LFF”;
GameObject obj;
FoundName(key, out obj);