我有特性的接口:不能訪問實現的屬性(從接口)
public interface IEntityModifier
{
...
bool AutoDetachOnFinished { get; set; }
bool Finished { get; }
...
}
然後我實現它:
bool IEntityModifier.AutoDetachOnFinished { get; set; }
bool IEntityModifier.Finished { get { return this.mFinished; } }
但是,當我需要在同一類中訪問AutoDetachOnFinished
,一編譯器錯誤彈出:
void IEntityModifier.Update(IEntity pEntity, Microsoft.Xna.Framework.GameTime pGameTime)
{
if (!this.mFinished)
{
this.Value += this.Delta * (float)pGameTime.ElapsedGameTime.TotalSeconds;
if (this.Value >= this.Max)
{
this.Value = this.Max;
this.mFinished = true;
if (this.AutoDetachOnFinished) { /* Error Here */ }
}
}
}
錯誤消息:
14「MEngine.Entities.EntityModifier.SingleValueEntityModifier」不 不包含關於「AutoDetachOnFinished」的定義和沒有擴展 方法「AutoDetachOnFinished」接受 類型的第一參數「MEngine.Entities.EntityModifier.SingleValueEntityModifier」可以被 (是否缺少using指令或程序集 參考?)
我有2個問題:
- 爲什麼編譯器會報告我刪除
IEntityModifier.
(因此IEntityModifier.Update
會變成Update
,適用於任何實現的方法)? - 爲什麼我不能訪問
AutoDetachOnFinished
?