Mam interfejs o właściwościach:nie może uzyskać dostępu realizowane nieruchomość (z interfejsem)
public interface IEntityModifier
{
...
bool AutoDetachOnFinished { get; set; }
bool Finished { get; }
...
}
Potem wdrożenia go:
bool IEntityModifier.AutoDetachOnFinished { get; set; }
bool IEntityModifier.Finished { get { return this.mFinished; } }
Ale kiedy potrzebują dostępu AutoDetachOnFinished
obrębie tej samej klasy, A błąd kompilatora wyskoczy:
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 */ }
}
}
}
komunikat o błędzie:
14 „MEngine.Entities.EntityModifier.SingleValueEntityModifier” ma nie zawierają definicji „AutoDetachOnFinished” i nie przedłużenie metodę „AutoDetachOnFinished” zaakceptowaniem pierwszego argumentu typu „MEngine.Entities.EntityModifier.SingleValueEntityModifier” może być znaleźć (czy brakuje using dyrektywa lub odwołania do zestawu ?)
mam 2 pytania:
- Dlaczego kompilator uskarża się na usunięcie
IEntityModifier.
s (abyIEntityModifier.Update
stałoby sięUpdate
, dotyczy jakiejkolwiek zaimplementowanej metody)? - Dlaczego nie mogę uzyskać dostępu do
AutoDetachOnFinished
?