第一种写法
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这个变量就获取不到值,这是啥原因?想不明白!有人能解释一下吗?
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这个变量就获取不到值,这是啥原因?想不明白!有人能解释一下吗?
set
{
_parentInputId= value;
}
public string parentInputId()
{
get
{
return _parentInputId;
}
set
{
_parentInputId= value; }
}
在Page_Load里面这样赋值:
this.parentInputId=Page.Request.QueryString["parentInputId"].ToString().Trim();
第二种写法是要先赋值给parentInputId,parentInputId才有值,似乎有点罗嗦?
第一种方法不是很好吗?
{
_parentInputId= value;
}
parentInputId
=Page.Request.QueryString["parentInputId"].ToString().Trim();
public string parentInputId
{
return Page.Request.QueryString["parentInputId"].ToString().Trim();
}
第二种叫属性不过你写错了
具体正确得写法,上面得老兄都给你指正出来了,也不用我多说
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";
}
}
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();
{
_parentInputId= value;
}这样写也行不通.因为parentInputId属性是通过其他页面通过xx.aspx?parentInputId=xxxxxx
的形式传过来的.set
{
_parentInputId= Page.Request.QueryString["parentInputId"].ToString().Trim;
}
这样不能把页面上传过来的值赋给_parentInputId吗,可我监测Page.Request.QueryString有值呀,而在类的其他地方用_parentInputId就是null,好像赋值没成功!