第一种写法
public string parentInputId
{
    get
    {
return Page.Request.QueryString["parentInputId"].ToString().Trim();
    }
}
第二种:
private string _parentInputId;
public string parentInputId
{
     get
     {
return _parentInputId;
     }
     set
     {
_parentInputId= Page.Request.QueryString["parentInputId"].ToString().Trim();;
     }
}
比如我传过来的参数parentInputId=123
用第一种写法parentInputId =123,而用第二种写法_parentInputId这个变量就获取不到值,这是啥原因?想不明白!有人能解释一下吗?

解决方案 »

  1.   

    你写错了。
    set
         {
    _parentInputId= value;
         }
      

  2.   

    第二种写法有问题,如上。关键是你没有赋值给parentInputId,什么时候set?
      

  3.   

    第二种写法有问题,如上。关键是你没有赋值给parentInputId,什么时候set?
      

  4.   

    private string _parentInputId;
    public string parentInputId()
    {
         get
         {
    return _parentInputId;
         }
         set
         {
    _parentInputId= value;     }
    }
    在Page_Load里面这样赋值:
    this.parentInputId=Page.Request.QueryString["parentInputId"].ToString().Trim();
      

  5.   

    第二种写法_parentInputId这个变量就获取不到值,是因为估计是因为没有赋值.写法是错误的, 不明白第二种写法有什么意思?
    第二种写法是要先赋值给parentInputId,parentInputId才有值,似乎有点罗嗦?
    第一种方法不是很好吗?
      

  6.   

    set
         {
    _parentInputId= value;
         }
    parentInputId
    =Page.Request.QueryString["parentInputId"].ToString().Trim();
      

  7.   

    第一种写法叫:方法 和下面得一样
    public string parentInputId
    {
    return Page.Request.QueryString["parentInputId"].ToString().Trim();
    }
    第二种叫属性不过你写错了
    具体正确得写法,上面得老兄都给你指正出来了,也不用我多说
      

  8.   

    get 访问器
    get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。以下是返回私有字段 name 的值的 get 访问器:
    private string name;   // the name field
    public string Name   // the Name property
    {
       get 
       {
          return name; 
       }
    }
    当引用属性时,除非该属性为赋值目标,否则将调用 get 访问器读取该属性的值。例如:
    Employee e1 = new Employee();
    ...
    Console.Write(e1.Name);   // The get accessor is invoked here
    get 访问器必须在 return 或 throw 语句中终止,并且控制不能超出访问器体。
    set 访问器
    set 访问器与返回 void 的方法类似。它使用称为 value 的隐式参数,此参数的类型是属性的类型。在下例中,set 访问器被添加到 Name 属性:
    public string Name 
    {
       get 
       { 
          return name; 
       }
       set 
       {
          name = value; 
       }
    }
    当对属性赋值时,用提供新值的参数调用 set 访问器。例如:
    e1.Name = "Joe";   // The set accessor is invoked here
    在 set 访问器中对局部变量声明使用隐式参数名 (value) 是错误的。
    备注
    属性按如下方式,根据所使用的访问器进行分类: 
    只带有 get 访问器的属性称为只读属性。无法对只读属性赋值。 
    只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。 
    同时带有 get 和 set 访问器的属性为读写属性。 
    在属性声明中,get 和 set 访问器都必须在属性体的内部声明。
    使用 get 访问器更改对象的状态是一种错误的编程样式。例如,以下访问器在每次访问 number 字段时都产生更改对象状态的副作用。
    public int Number 
    {
       get
       {
          return number++;   // Don't do this
       }
    }
    可以将 get 访问器用于返回字段值,或用于计算字段值并将其返回。例如:
    public string Name 
    {
       get 
       {
          return name != null ? name : "NA";
       }
    }
      

  9.   

    private string _parentInputId;
    public string parentInputId()
    {
         get
         {
    return _parentInputId;
         }
         set
         {
    _parentInputId= value;     }
    }
    在Page_Load里面这样赋值:
    this.parentInputId=Page.Request.QueryString["parentInputId"].ToString().Trim();
    我这是一控件的属性,所以不想在page_load加this.parentInputId=Page.Request.QueryString["parentInputId"].ToString().Trim();
      

  10.   

    set
    {
       _parentInputId= value;
     }这样写也行不通.因为parentInputId属性是通过其他页面通过xx.aspx?parentInputId=xxxxxx
    的形式传过来的.set
    {
       _parentInputId= Page.Request.QueryString["parentInputId"].ToString().Trim;
     }
    这样不能把页面上传过来的值赋给_parentInputId吗,可我监测Page.Request.QueryString有值呀,而在类的其他地方用_parentInputId就是null,好像赋值没成功!