public interface IA:II
{
String Name { get; }
Int32 ID { get; }
}
public interface II {
String T { get; set; }
String Name { get; set; }
}
public interface IB
{
String Name { get; }
Int32 ID { get; }
}
public class A:IA
{
String _Name = "";
Int32 _ID = 0;
String _T = "";
public String T
{
get
{
return "This Is T [" + _T + "]";
}
set { _T = value; }
}
public A(String __Name, Int32 __ID)
{
_Name = __Name;
_ID = __ID;
}
public String Name
{
get { return "This Is Name In A :[" + _Name + "]"; }
set { _Name = value; }
}
public Int32 ID
{
get { return _ID; }
set { _ID = value; }
}
public Int32 Ex
{
get { return _ID; }
set { _ID = value; }
}
}
public class B : IB
{
String _Name = "";
Int32 _ID = 0;
public B(String __Name, Int32 __ID)
{
_Name = __Name;
_ID = __ID;
}
public String Name
{
get { return "This Is Name In B :[" + _Name + "]"; }
set { _Name = value; }
}
public Int32 ID
{
get { return _ID; }
set { _ID = value; }
}
public Int32 Ex
{
get { return _ID; }
set { _ID = value; }
}
}
public class C : IB
{
String _Name = "";
Int32 _ID = 0;
public C(String __Name, Int32 __ID)
{
_Name = __Name;
_ID = __ID;
}
public String Name
{
get { return "This Is Name In C :[" + _Name + "]"; }
set { _Name = value; }
}
public Int32 ID
{
get { return _ID; }
set { _ID = value; }
}
}
public class X
{
public IA A { get; set; }
public IB B { get; set; }
public IB C { get; set; }
}
A _A = new A("_A", 1);
Console.WriteLine(_A.Name + _A.ID);//_A.Ex可访问
IA AA = new A("AA", 11);
Console.WriteLine(AA.Name + AA.ID);//AA.Ex不可访问 接口中未定义 AA.T可访问 继承自接口II
B _B = new B("_B", 2);
IB BB = new B("BB", 22);
var C = new X
{
A = new A("XA", 931),
B = new B("XB", 932),
C = new C("XC", 933),
};
Console.WriteLine(_B.Name + _B.ID);
Console.WriteLine(BB.Name + BB.ID);
Console.WriteLine(C.A.Name + C.A.ID);
Console.WriteLine(C.B.Name + C.B.ID);
Console.WriteLine(C.C.Name + C.C.ID);
Console.WriteLine(C.A.T);
//C.A.ID C.A.Name不可赋值[同时存在取本体内的了]
//A接口中定义为只读
//C.A.T可以 II接口中定义为可读写
C.A.T = "Set Value";
Console.WriteLine(C.A.T);
Console.ReadLine();

//所有引用均指向同一对象
var _A_ = new A("_A_", 9999);
_A_.T = "Creat By _A_";
IA _IA_ = _A_;
II _II_ = _A_;
var _CA_ = _A_;
var _CIA_ = _IA_;
Console.WriteLine("_A_ "+ "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
_A_.T = "Change By _A_";
Console.WriteLine("_A_ " + "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
_IA_.T = "Change By _IA_";
Console.WriteLine("_A_ " + "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
_II_.T = "Change By _II_";
Console.WriteLine("_A_ " + "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
_CA_.T = "Change By _CA_";
Console.WriteLine("_A_ " + "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
_CIA_.T = "Change By _CIA_";
Console.WriteLine("_A_ " + "|" + _A_.T);
Console.WriteLine("_IA_ " + "|" + _IA_.T);
Console.WriteLine("_II_ " + "|" + _IA_.T);
Console.WriteLine("_CA_ " + "|" + _CA_.T);
Console.WriteLine("_CIA_ " + "|" + _CIA_.T);
Console.WriteLine("------------------------------------------");
Console.ReadLine();

我知道这世界
如露珠般短暂
然而
然而
浙公网安备 33010602011771号