“这个”作为参数是参考的吗?
本文关键字:参考 参数 这个 | 更新日期: 2023-09-27 18:37:02
我正在Xna中开发一个关卡编辑器,我的问题是,当您调用使用"this"作为参数的方法时,参数是引用还是值?
前任:
class A_Class
{
private B_Class bClass;
public void aMethod()
{
bClass.bMethod(this);
}
}
class B_Class
{
public void bMethod(A_Class aClass)
{
// code
}
}
它是
对调用A_Class对象的引用,因为类是引用类型的。
更具体地说,如其他关于引用/值的问题所述,它传递一个值,该值是对调用A_Class对象的引用。
如果不是A_Class,而是A_Struct,this
将按值传递,因为结构是值类型。
传递"this"或任何与此相关的对象,将传递一个等于引用的值。
默认情况下,参数由 VALUE 传递。如果参数是引用类型,则 VALUE 是对实际数据的引用。如果参数是值类型,则 VALUE 是值类型保存的数据。在您的代码中,A_Class
是一种引用类型,因此将this
作为 param 传递实际上传递了A_Class
对象的 VALUE,它是对实际数据的引用。
您可以使用ref
关键字使它们通过引用传递。
有关详细信息,请参阅 C# 中的参数传递。