public class A
{
    private string name;
    public string Name
    {
        set {
            name = "aa";
        }
        get {
            return name;
        }
    }这个类 
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        A a = new A();
        a.Name = "bb";
        Response.Write(a.Name);
    }为什么打印出来不是bb呢?
但是把前面 
set {
            name = values;
        }
就能打出bb呢?

解决方案 »

  1.   

    你用F11跟一下代码就清楚了,先执行 a.Name = "bb";再又执行了 a.Name = "aa";
      

  2.   

    因为你每次执行的都是name = "aa"; 
    a.Name = "bb"; 
    调用的是set { 
                name = "aa"; 
            } 
      

  3.   

    set就是SetName(value)。
    a.Name = "bb"; 就是SetName("bb")
      

  4.   

    断点调试一下就知道了呀,把name强制等于aa了,如果是name=value,就可以把bb赋给name了 
      

  5.   

    void 开饭(object 饭)
    {
        //一般情况
         //吃(饭);
        //上面的情况
         喝汤();    
    }结果:一天开饭3次,一直喊饿
      

  6.   

    void welcome(string name){
       Console.Writeline("hello,"+ "dog");
    }一般应该是void welcome(string name){
       Console.Writeline("hello,"+ name);
    }
      

  7.   

    楼上的太形象了。。哈哈。。
    name值都固定了。
    楼主
    set{
    name=value;
    }它就可写了。
      

  8.   

    你都把name的值固定成了"aa",那你随便怎么给它赋值.它永远就是这个值啊.而name=value;这样才会弹出你赋的值.
      

  9.   

    public string Name 
        { 
            set { 
                name = "aa"; 
            } 
            get { 
                return name; 
            } 
        } A.Name = 调用的
    set 代码
     = A.Name 调用的
    get 代码这就是属性器.和读写操作