I know this may be basic but I cannot seem to add a member variable to an interface. I tried inheriting the interface to an abstract class and add member variable to the abstract class but it still does not work. Here is my code:
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();
}
updated base on comment of Robert Fraser
You cannot add fields to an interface.Interface can only contain methods , so only methods , properties , events can be declared inside an interface decleration.In place of field you can use a property.
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();
}
Workd for me. You were missing the "public" and "void" on the abstract class methods.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With