当前位置:编程学习 > C#/ASP.NET >>

问一个想不明白的问题,大神们请给个解答,万分感谢.

代码如下: 红色的注释有问题,能给解答么?


   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";

难道非得如此么? 那我的程序就得改成花了.求大神帮忙.
--------------------编程问答--------------------
引用楼主 gf_iloveu 的回复:
代码如下: 红色的注释有问题,能给解答么?


   private void button1_Click(object sender, EventArgs e)
        {

            Test t = new Test();

            t.PID = "SSSS";

            ITest i = t;

      ……


您指的属性是哪个? 我对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

所以你得不到想要的值


--------------------编程问答--------------------
引用 4 楼 anbam 的回复:
i.Pro.ID = "AAAAA";//为什么这里的"AAAAA"没有赋值,跑哪里去了?

//赋值成功

System.Diagnostics.Trace.Write(i.Pro.ID);

//此时,进入代码段get
                {
                    p.ID = this.PID;//重新赋值sss

所以你得不到想要的值
……


我知道,但是如何才能得到我想要的值呢?
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,