是“这个”作为参考的参考?

时间:2012-06-12 02:05:10

标签: c# reference xna

我正在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
    }
}

3 个答案:

答案 0 :(得分:6)

它是对调用A_Class对象的引用,因为类是引用类型 更具体地说,正如其他关于引用/值的问题所述,它传递的是一个值,该值是对调用A_Class对象的引用。

如果不是A_Class,那么它是A_Struct,this将按值传递,因为Structs是值类型。

答案 1 :(得分:2)

传递'this'或任何对象,将传递一个等于参考值的值。

答案 2 :(得分:-1)

默认情况下,参数通过VALUE 传递。如果参数是引用类型,则VALUE是对实际数据的引用。如果param是值类型,则VALUE是值类型包含的数据。在您的代码中,A_Class是一种引用类型,因此将this作为参数传递实际上会传递A_Class对象的VALUE,它是对实际数据的引用。

您可以使用ref个关键字将其通过引用传递

有关详细信息,请参阅Parameter passing in C#