例如,如果我在Page_Load方法中,并且我想获取查询字符串数据,我就这样做:
public partial class Product_Detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["p"];
}
}
但如果我在课堂内,但不在我必须使用的任何方法中:
public partial class Product_Detail : System.Web.UI.Page
{
string id = HttpContext.Current.Request.QueryString["p"];
protected void Page_Load(object sender, EventArgs e)
{
}
}
为什么?
答案 0 :(得分:1)
成员变量初始化程序 - 这是您的id
赋值所在 - 不能使用实例方法或属性。 Page.Request是一个实例属性,因此不适用于成员初始化者。
答案 1 :(得分:1)
我猜想这是因为在课程即时之前不会创建类成员。因此,除了类方法之外,您无法访问Request属性。
答案 2 :(得分:1)
在构造函数之前,无法访问当前类的属性(包括 this )。由于字段初始化程序在执行构造函数之前发生,因此无法访问属性(和字段和方法)。
答案 3 :(得分:1)
您不能引用字段初始化程序的实例属性 - 当字段初始化时,实例尚未完全构造(即,没有 this
指针)。