繁体   English   中英

如何在c#中向接口添加成员变量

[英]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.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM