代码如下: 红色的注释有问题,能给解答么?
private void button1_Click(object sender, EventArgs e)
{ Test t = new Test(); t.PID = "SSSS"; ITest i = t; i.Pro.ID = "AAAAA";//为什么这里的"AAAAA"没有赋值,跑哪里去了?
MessageBox.Show(i.Pro.ID);
} public class Property
{
public string ID { get; set; } public string Name { get; set; }
} public interface ITest
{
Property Pro { get; set; }
} public class Test : ITest
{ public string PID { get; set; }
public string PName { get; set; }
#region ITest 成员 Property p = new Property(); Property ITest.Pro
{
get
{
p.ID = this.PID;
p.Name = this.PName; return p;
}
set
{
p = value;
this.PID = p.ID;
this.PName = p.Name;
}
} #endregion
}
private void button1_Click(object sender, EventArgs e)
{ Test t = new Test(); t.PID = "SSSS"; ITest i = t; i.Pro.ID = "AAAAA";//为什么这里的"AAAAA"没有赋值,跑哪里去了?
MessageBox.Show(i.Pro.ID);
} public class Property
{
public string ID { get; set; } public string Name { get; set; }
} public interface ITest
{
Property Pro { get; set; }
} public class Test : ITest
{ public string PID { get; set; }
public string PName { get; set; }
#region ITest 成员 Property p = new Property(); Property ITest.Pro
{
get
{
p.ID = this.PID;
p.Name = this.PName; return p;
}
set
{
p = value;
this.PID = p.ID;
this.PName = p.Name;
}
} #endregion
}
{
get
{
p.ID = this.PID;
p.Name = this.PName; return p;
}
set
{
p = value;
this.PID = p.ID;
this.PName = p.Name;
}
}你这属性写的,就是这个意思吧,你的测试程序里,只对该属性进行了取值,并没有进行赋值
我暂时想到个方法,就是new一个Propery的实例
Property pTemp = new Propery();
pTemp.ID = "AAAAA";
i.Pro = pTemp;如此i.Pro.ID 才能接受"AAAAA";难道非得如此么? 那我的程序就得改成花了.求大神帮忙.
您指的属性是哪个? 我对Pro的属性取值,是在Get里面,想把Test类中的PID属性和PName属性组合,变为Pro的值.
当Pro类被赋值时候,想对Test类中的PID和PName赋值.不知道这么写有什么问题?
{
p.ID = this.PID;//重新赋值sss所以你得不到想要的值