问一个想不明白的问题,大神们请给个解答,万分感谢.
代码如下: 红色的注释有问题,能给解答么?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 inte易做图ce 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
} --------------------编程问答--------------------
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;
}
}
我暂时想到个方法,就是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赋值.不知道这么写有什么问题? --------------------编程问答-------------------- i.Pro.ID = "AAAAA";//为什么这里的"AAAAA"没有赋值,跑哪里去了?
//赋值成功
System.Diagnostics.Trace.Write(i.Pro.ID);
//此时,进入代码段get
{
p.ID = this.PID;//重新赋值sss
所以你得不到想要的值
--------------------编程问答--------------------
我知道,但是如何才能得到我想要的值呢?
补充:.NET技术 , C#