首页 新闻 会员 周边 捐助

新手提问..c#,showName方法里的值是怎么来的?

0
悬赏园豆:5 [待解决问题]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 构造函数
{
    class Program
    {
        static void Main(string[] args)
        {
            person p1 = new person();
            p1.num = 55;
            p1.showName();
            Console.ReadKey();
        }
    }

    class person
    {
        private int age;
        public int num
        {
            set
            {
                this.age = value;
            }
            get
            {
                return this.age;
            }
        }
        public void showName()
        {
            Console.WriteLine(this.age);
        }
    }
}
public void showName()
        {
            Console.WriteLine(this.age);
        }
this.age改成this.num输出的结果也是55,为什么啊 ?
这代码怎么执行的 啊?
深蓝色梦想的主页 深蓝色梦想 | 初学一级 | 园豆:6
提问于:2012-07-23 23:58
< >
分享
所有回答(5)
0
public int num
        {
            set
            {
                this.age = value;
            }
            get
            {
                return this.age;
            }
        }

这this.Num不是也取得是this.age吗! 所以是一样的。
Tom.汤 | 园豆:3058 (老鸟四级) | 2012-07-24 08:10
0

……我不说话

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-07-24 08:50
0

this.num执行到的时候,会去掉你写的属性,也就是调get方法,然后其实也就是访问this.age。所以没什么大惊小怪的

BLoodMaster | 园豆:135 (初学一级) | 2012-07-24 10:50
0

断个点就能很详细的了解了。。。。一步一步走。。

秋风sao落叶 | 园豆:44 (初学一级) | 2012-07-26 14:52
0

这个推荐楼主再去看一下书上关于属性这一章节,属性的作用就是封装字段,这里的num属性就是用来封装age字段的,很明显,get和set方法都是对age进行操作,因此调用num跟调用age是相同的结果,只是将age封装到属性中是为了避免在客户端直接操作age的值,使用属性了之后就可以在set中加上自己的判断条件,比如:age=-1;显然是不合常理的,这就是属性的好处。

KANLEI | 园豆:96 (初学一级) | 2012-09-17 22:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册