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 構文は何ですか?