我正在尝试使用 C++/CLI 自动实现的属性来显式覆盖接口。特别是,我写过(在 C++/CLI 中)
interface IInterface
{
property Object ^MyProperty
{
Object ^get(void);
void set(Object^);
}
void Method(void);
}
要IInterface
在 C# 中显式使用,可以编写
class MyClass : IInterface
{
Object IInterface.MyProperty { get; set;}
void IInterface.Method()
{
}
}
C++/CLI 不支持 EII,但它支持显式覆盖。例如,可以写
sealed ref class MyClass : IInterface
{
private:
virtual void method(void) = IInterface::Method {}
public:
property Object ^MyProperty;
}
我想使用自动实现的属性来定义我的显式覆盖,但是
sealed ref class MyClass : IInterface
{
private:
virtual void method(void) = IInterface::Method {}
property Object ^myProperty = IInterface::MyProperty;
}
产生编译器错误C2146
:;
在标识符之前丢失Object
,C2433
:virtual
数据声明中不允许,C4430
:缺少类型说明符,以及C3766
:接口成员未实现。我错过了什么吗?实现我所寻求的合适的 C++/CLI 语法是什么?