1,和c++里面的getter和setter一样,最重要的是实现了封装,即避免
把内部数据直接暴露给用户。2.1很类似c++里地<<运算符重载,这样就调用person.ToString()乐。
2.2你不觉得前面直观而且简单乐很多么?
   如果person这个类有n多项数据,而很不幸地,你也要写n个
   Console.WriteLine("name....",person.Name,person.Age,...);
   你觉得方便吗?

解决方案 »

  1.   

    >>问题1.
    >>感觉对属性的定义
    >>在对其赋值时,没什么区别,反而前者冗长了许多,不知道get/set有什么优点
    第一,封装,防止用户直接访问你的变量。可以设不同的属性,如只读,只写。。
    第二,你可以在这里放上你的处理代码,比如ForeColor,设定以后forcolor就可直接更改,而不是要去调用另外的方法。
    第三, 可代理,专用于组件。属性是函数,可以模仿,变量只是一段内存空间,没办法模仿,这样你没办法设定远程组件的值!
    问题2.>>    2.1 输出时为什么会和ToString()有关系,竟然可以重载方法,使输出结>>果改变
    你重载了object的ToString方法。当遇到隐式转换到String时,系统默认调用ToString.
        2.2 输出时使用Console.WriteLine("name:{0},age:{}",person.Name,person.Age);不是可得到同样的结果吗?前者有什么优点?1.保证没一个对象都有string表示
    2。可递归调用customers.Tostring{
    ..customer.Tostring{
    ...me.Name + age..
    }
    }...------------------------------
    我是一只小小鸟
    欢迎交流!尽管问我吧,我会帮你解决的!
    尽快结帖哦!我是CSDN的菜鸟,我想获得一颗星!支持我吧!
    MSN&Mail: [email protected]