Tôi có một giao diện với các thuộc tính:bất động sản không thể truy cập được thực hiện (từ giao diện)
public interface IEntityModifier
{
...
bool AutoDetachOnFinished { get; set; }
bool Finished { get; }
...
}
Sau đó, tôi thực hiện nó:
bool IEntityModifier.AutoDetachOnFinished { get; set; }
bool IEntityModifier.Finished { get { return this.mFinished; } }
Nhưng khi tôi cần phải truy cập AutoDetachOnFinished
trong cùng một lớp, một lỗi trình biên dịch xuất hiện:
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 */ }
}
}
}
Thông báo lỗi:
14 'MEngine.Entities.EntityModifier.SingleValueEntityModifier' không không chứa một định nghĩa cho 'AutoDetachOnFinished' và không có phương pháp mở rộng 'AutoDetachOnFinished' chấp nhận một cuộc tranh luận đầu tiên của loại 'MEngine.Entities.EntityModifier.SingleValueEntityModifier' có thể được tìm thấy (là bạn thiếu một chỉ thị sử dụng hoặc tham khảo một hội ?)
tôi có 2 câu hỏi:
- Tại sao trình biên dịch lại phàn nàn nếu tôi xóa
IEntityModifier.
s (vì vậyIEntityModifier.Update
sẽ trở thànhUpdate
, áp dụng cho bất kỳ phương thức được triển khai nào)? - Tại sao tôi không thể truy cập
AutoDetachOnFinished
?