這裏就是我想要做的事:通過在C#中的抽象類顯式執行財產
在頂部坐在接口:
interface IHasPosition
{
Position Position
{
get;
}
}
接下來,我們有一個抽象類:
abstract class Person : IHasPosition
{
public abstract Position Position
{
get;
}
}
最後,我向人:
class Instructor : Person
{
public override Position Position
{
get { return new Position(1, 1); }
}
}
這個編譯得很好。但是,我似乎無法明確定義屬性Position。事情是這樣的:
class Instructor : Person
{
public override Position IHasPosition.Position
{
get { return new Position(1, 1); }
}
}
這無法編譯:
Error 1 'ConsoleApplication3.Instructor.IHasPosition.Position': virtual or abstract members cannot be private
Error 3 The modifier 'override' is not valid for this item
Error 2 The modifier 'public' is not valid for this item
你爲什麼要明確地實現接口的屬性? – Alireza
修飾符'public'對這個項目無效 - 你試圖明確地實現它;修飾符'override'對此項無效 - 再次涉及到第一條語句 – terrybozzio
你想要做什麼?我的意思是爲什麼抽象實現基類和私人派生?或者你想公開派生? – terrybozzio