C++/CLI 和 C#:对象 returns 本身

C++/CLI and C#: object returns itself

给定 class Object,在 C++ 中可以 return 引用对象本身,例如:

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

然后消费为:

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

是否可以在C++/CLI中实现相同的效果并在C#应用程序中使用它?我尝试了以下方法(使用 refs % 和 handles ^),它在 C++/CLI 中编译,但 C# 表示此类方法是

is not supported by the language

    //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

谢谢

对于 C++/CLI,您只需要以下内容:

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

好的,这很好用:

//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();