private string username = "";
    private string password = "";
    public string userName
    {
        get
        {
            return usernameTb.Text.Trim();
        }
        set { username = value; }
    }
    public string PSW
    {
        get
        {
            return pswTb.Text.Trim();
        }
        set { password = value; }
    }以上代码跟直接拿usernameTb.Text.Trim(),pswTb.Text.Trim()有什么区别?不太清楚它的优越性。

解决方案 »

  1.   

    private string username = "";
        private string password = "";
        public string userName
        {
            get
            {
                EnsureChildControls();
                return usernameTb.Text.Trim();
            }
            set {             
                 EnsureChildControls();
                 username = value; }
        }
        public string PSW
        {
            get
            {
                EnsureChildControls();
                return pswTb.Text.Trim();
            }
            set { 
                EnsureChildControls();
                password = value; }
        }没人告诉你asp.net下的控件要写  EnsureChildControls(); 吗?那么现在记住它吧,这很重要,写着行代码这可以显示出你确实了解 asp.net 与 winform 机制的区别。
      

  2.   

    至于你的问题,现在是不言自明了。只有必要时才需要写代码,不必要的时候就不必要写。那么如果原来你以为 UserName 是个字段,但是你学习到 asp.net 下要写 EnsureChildControls() 语句,你原来的程序使用 UserName 的部分仍然不需要做任何修改,直接把字段改为属性而扩展其实现代码就行了。这就是“优势”。但是关键还是——只有必要的时候才多写一两行代码。现在你就是看到必要性的时候了。
      

  3.   

    因为usernameTb.Text\pswTb.Text.Trim()等是直接出来的数据,而保留有ViewState,如果还用控件,那么还需要用上ViewState来个别保存数据
      

  4.   


    你是想说保留有ViewState会有什么影响吗
      

  5.   

    这个得看usernameTb和pswTb控件的特性了,我没猜错是自定义控件或者用户控件
      

  6.   


    感谢前辈,但我还是看不懂 EnsureChildControls()这个在程序中存在的价值,可否说具体些?
      

  7.   


    普通的控件,直接拉出来的,VS中那些“标准”控件
    那就没什么好纠结的,就这一段代码而言,看里面的renturn部分,完全按你想的那样,
      

  8.   

    其实我还是很肤浅地认为如果没有特殊的读取设置,那直接拿textbox的值就行了。