Вы можете повторно объявить его (или, скорее, сообщить компилятору, что намереваетесь скрыть его):
public interface IChangeable : IBasic
{
new int Data { set; }
}
class Foo : IChangeable
{
private int value;
int IBasic.Data { get { return value; } }
int IChangeable.Data { set {this.value = value;} }
}
Но это сбивает с толку, и вам нужно будет использовать явные реализации и т. Д., И, возможно, немного озвучивать вызывающего, если вы хотите использовать скрытую версию. Если вы пошли по этому пути, я бы порекомендовал выставить get
и set
на IChangeable
:
public interface IChangeable : IBasic
{
new int Data { get; set; }
}
class Foo : IChangeable
{
private int value;
int IBasic.Data { get { return value; } }
int IChangeable.Data { set { this.value = value; } get {return value; } }
}
Ре комментарии; выставить на реализующий тип:
public interface IChangeable : IBasic
{
new int Data { set; }
}
public interface IBasic
{
int Data { get; }
}
class Foo : IChangeable
{
private int data;
public int Data {
get { return data; }
set { data = value; }
}
}
Это также будет работать, если вы сделаете это (что я предпочитаю):
public interface IChangeable : IBasic
{
new int Data { get; set; }
}