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();
给定 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();