我需要一个多重继承的解决方案。我知道我可以使用接口。那将是一个很好的解决方案但...... ......我需要有机会改变保护级别,但接口领域必须是公开的......
例如:
我有
interface IInterface_1 {
string field_1{set;get;}
string field_2{set;get;}
}
interface IInterface_2 {
string field_3{set;get}
string field_4{set;get}
}
在大班我需要隐藏一些字段
class MainClass : IInterface_1, IInterface_2 {
public string field_1{set;get;}
private string field_2{set;get;}
public string field_3{set;get}
public string field_4{set;get}
}
你有解决方法吗?
答案 0 :(得分:6)
显式接口实现:
class MainClass : IInterface_1, IInterface_2 {
public string field_1{get;set;}
public string field_3{get;set;}
public string field_4{get;set;}
private string field2;
string IInterface_1.field_2 {
get {return field2;}
set {field2 = value;}
}
}
答案 1 :(得分:1)
[从Robson的问题和他对Marc的答案的拒绝编辑复制]
我的解决方案是:
public class PermissionDeniedException : Exception {}
class MainClass : IInterface_1, IInterface_2 {
public string field_1{set;get;}
private string field_2{set;get;}
string IInterface_1.field_2 {
get {throw new PermissionDeniedException();}
set {throw new PermissionDeniedException();}
}
public string field_3{set;get}
public string field_4{set;get}
}