C ++ / CLI和C#:object返回自身

时间:2015-03-12 22:57:12

标签: c# c++-cli

给定一个类Object,在C ++中可以返回对象本身的引用,如:

    //C++
    class Object
    {
        Object& method1()
        {
            //..
            return *this;
        }
        Object& method2()
        {
            //.
            return *this;
        }
    }

然后将其消费为:

    //C++
    Object obj;
    obj.method1().method2();

是否有可能在C ++ / CLI中实现相同的效果并在C#应用程序中使用它?我尝试了以下(使用引用%并处理^),它在C ++ / CLI中编译,但C#表示这样的方法是

  语言

不支持

    //C++/CLI - compiles OK
    public ref class Object
    {
        Object% method1()
        {
            //..
            return *this;
        }
        Object% method2()
        {
            //.
            return *this;
        }
    }

然后用作:

    //C#
    Object obj = new Object();
    obj.method1(); //ERROR
    obj.method1().method2(); //ERROR

由于

2 个答案:

答案 0 :(得分:2)

您只需要以下C ++ / CLI:

public ref class Object
{
public:
    Object ^method1()
    {
        //..
        return this;
    }
    Object ^method2()
    {
        //.
        return this;
    }
};

答案 1 :(得分:0)

好的,这很好用:

//C++/CLI - compiles OK
public ref class Object
{
    Object^ method1()
    {
        //..
        return this;
    }
    Object^ method2()
    {
        //.
        return this;
    }
}

然后用作:

//C#
Object obj = new Object();
obj.method1();
obj.method1().method2();