namespace Model
{
    /// <summary>
    /// Admin类
    /// </summary>
    [Serializable]
    public class Admin
    {        #region fields
        private string userName;
        private string userPass;
        #endregion        #region properties
        ///<summary>
        ///管理员账号
        ///</summary>
        public string UserName//声明了UserName参数并对其属性予以赋值
        {
            get { return userName; }
            set { userName = value; }
        }
        ///<summary>
        ///管理员密码
        ///</summary>
        public string UserPass
        {
            get { return userPass; }
            set { userPass = value; }
        }        #endregion        ///<summary>
        ///constructor
        ///</summary>
        public Admin(string userName, string userPass)//定义了Admin的方法
        {
            this.userName = userName;
            this.userPass = userPass;
        }        public Admin()
        {        }
    }}
源码如上,请问下 this.userName = userName;这到底是什么意思啊!!有什么意义呢?

解决方案 »

  1.   

    "this.变量名"代表成员变量,区别于参数变量......
      

  2.   


    this.userName是admin的属性
    等号后面的userName是方法传递的形参
      

  3.   

    this打.的userName 是字段... 没用this的是局部变量。 this关键字用来区分局部变量跟字段
      

  4.   

    呵呵 我来给你解释 你看下面这写代码片段
      #region fields
      private string userName;
      private string userPass;
      #endregion
      public Admin(string userName, string userPass)//定义了Admin的方法
      {
      this.userName = userName;
      this.userPass = userPass;
      }
    它的参数名(userName)和字段名(userName)。构造函数的函数体内的代码本意是想将参数userName的值传给字段userName。由于恰好参数名和字段名相同,如果你在构造函数里这样写userName = userName;就相当于把参数userName的值赋给参数userName。this代表对象本身this.userName表示这个对象的一个叫userName的字段,所以this.userName=userName;这样就能达到我们的目的了。当然我看到你同时也定义了一个叫UserName的属性你也可以像这样写 UserName = userName; 
      

  5.   

    public Admin(string userName, string userPass)// userName是参数
       {
       this.userName = userName;//this.userName  这里userName 是类的成员变量 this是为了区分这两个userName
       this.userPass = userPass;
       }
    这么写你对比写就理解了
    public Admin(string uName, string uPass
       {
       this.userName = uName;//或userName = uName
       this.userPass = uPass;//userPass = uPass
       }
      

  6.   

    楼主分辨率过低,12楼这样写更清晰:
    //楼主以后可以约定函数的参数以小写字母p开头,以区别与类成员
    public Admin(string pUserName, string pUserPass
    {
      this.userName = pUserName;
      this.userPass = pUserPass;
      }
      

  7.   

    //楼主以后可以约定函数的参数以小写字母p开头,以区别与类成员
    public Admin(string pUserName, string pUserPass
    {
      this.userName = pUserName;
      this.userPass = pUserPass;
      }
      

  8.   

    parameter -》 p代表参数的缩写
      

  9.   

    初始化Admin的新实例,并且新实例的userName 属性  等于传入的userName