[英]How to add member variable to an interface in c#
我知道这可能是基本的,但我似乎无法向接口添加成员变量。 我尝试将接口继承到抽象类并将成员变量添加到抽象类,但它仍然不起作用。 这是我的代码:
public interface IBase {
void AddData();
void DeleteData();
}
public abstract class AbstractBase : IBase {
string ErrorMessage;
public abstract void AddData();
public abstract void DeleteData();
}
public class AClass : AbstractBase {
public override void AddData();
public override void DeleteData();
}
根据罗伯特弗雷泽的评论更新
您不能向接口添加字段。接口只能包含方法,因此只能在接口decleration中声明方法,属性和事件。在字段的位置,您可以使用属性。
public interface IBase {
string ErrorMessage {get;set;}
void AddData();
void DeleteData();
}
public interface IBase {
void AddData();
void DeleteData();
}
public abstract class AbstractBase : IBase {
string ErrorMessage;
public abstract void AddData();
public abstract void DeleteData();
}
为我工作。 您错过了抽象类方法中的“public”和“void”。
由于接口仅声明非实现细节,因此无法在接口中声明成员变量。
但是,您可以在界面上定义属性,并在类中实现该属性。
如果它是实现类需要实现的东西,那么使用属性定义即
那说如果它是需要私有的东西那么它不应该是在界面中的任何东西。
你的意思是财产而不是领域吗?
public interface IBase {
string ErrorMessage { get; set; }
void AddData();
void DeleteData();
}
public abstract class AbstractBase : IBase {
abstract string ErrorMessage { get; set; }
// also, you need to declare a return type for the methods
abstract void AddData();
abstract void DeleteData();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.