我想從兩個接口(IIndividual和IGuardian)繼承的類(學生)填充列表模板。人口成功相當不錯。現在的問題是最後一個元素替換舊元素並覆蓋它們。很困惑。最後添加的項目將替換列表中的所有現有項目
interface IIndividual
{
String Name { get; set; }
String Number { get; set; }
String Address { get; set; }
}
interface IGuardian
{
String Name { get; set; }
String Number { get; set; }
String Address { get; set; }
}
class Student: IIndividual, IGuardian
{
String IIndividual.Name { get; set; }
String IIndividual.Number { get; set; }
String IIndividual.Address { get; set; }
String IGuardian.Name { get; set; }
String IGuardian.Number { get; set; }
String IGuardian.Address { get; set; }
public void output()//testing
{
IIndividual i = this as IIndividual;
Console.WriteLine("Individual Name = {0}", i.Name);
Console.WriteLine("Individual Number = {0}", i.Number);
Console.WriteLine("Individual Address= {0}", i.Address);
IGuardian g = this as IGuardian;
Console.WriteLine("Guardian Name = {0}", g.Name);
Console.WriteLine("Guardian Number = {0}", g.Number);
Console.WriteLine("Guardian Address= {0}", g.Address);
}
}
static void Main(string[] args)
{
List<Student> s = new List<Student>();
Student ss = new Student();
IIndividual ii = ss as IIndividual;
IGuardian gg = ss as IGuardian;
gg.Name = "Kinyo Yemi";
gg.Number = "08";
gg.Address = "Bunker Street";
ii.Name = "Hope Ajayi";
ii.Number = "08185543124";
ii.Address = "Metropolitan Council";
s.Add(ss);
/////////////////////
gg.Name = "Awwal Kadi";
gg.Number = "08072523245";
gg.Address = "R32 Damboa";
ii.Name = "Morak Suleiman";
ii.Number = "08535755543";
ii.Address = "Sederal Low Cost";
s.Add(ss);
foreach (var x in s)
{
x.output();
Console.WriteLine();
}
Console.Read();
}
這不是發生了什麼事情。 'ss','ii'和'gg'從頭到尾都是相同的對象。這就是參考類型的工作原理。你只創建一個對象,'Student ss = new Student()' –