日期:2014-05-17  浏览次数:20909 次

.net Get与Set属性, 求解释!!!!!!!!!!!!!!!!!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            test t = new test();
            t.Name = "3";   //设置这个name,我并没有执行get方法,而应该是set。为什么这里监视到t.name = "1"?  

            Console.WriteLine(t.Name);
            Console.ReadLine();   //最后输出结果为 "1"
        }
    }

    public class test
    {
        private string name;
        public string Name
        {
            get { if (true) { return "1"; } }
            set { name = value; }
        }
    }
}

------解决方案--------------------
Console.WriteLine(t.Name);
t.Name 就是get
------解决方案--------------------
你在最后输出的时候是在get,get的返回结果是1.当然最后输出1啊。
------解决方案--------------------
get { if (true) { return "1"; } } //get时,直接返回1
 Console.WriteLine(t.Name);//这里t.Name取属性的值,当然会找到get,得到上面的1.
------解决方案--------------------
你监视的时候就执行了get
------解决方案--------------------