-----------Default.aspx.cs--------------
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        WebCookie.CheckCookie();
    }
}自定义类:
-------------------WebCookie--------------------
public class WebCookie
{
    public WebCookie()
{
//
// TODO: Add constructor logic here
//
}    public void CheckCookie()
    {
        if (HttpContext.Current.Request.Cookies["chenlong"].Value== null)
        {
            HttpContext.Current.Response.Redirect("Login.aspx");
        }
    }
}但是这样运行会出现错误提示如下:
An object reference is required for the nonstatic field, method, or property 'WebCookie.CheckCookie()'当我把方法在方法面前加上static 即public static void CheckCookie()这样定义时候就可以通过,static只是声明静态变量、函数时候使用,为什么这里这么大区别呢?

解决方案 »

  1.   

    WebCookie WebCookie1=new WebCookie();
    WebCookie1.CheckCookie();
      

  2.   

    你没实例化WebCookie当然需要静态了.
      

  3.   

    可以用
    WebCookie WebCookie1=new WebCookie();
    WebCookie1.CheckCookie();也可以修改
    public class WebCookie
    {
        public WebCookie()
    {
    ....
    }    public static void CheckCookie()//在这里加个static
        {....    }
    }
      

  4.   

    具体static的说明你可以看看msdn里的解释
      

  5.   

    static关键字可以在类例示实例前使用,如:WebCookie.CheckCookie(),而不使用static关键字的方法在使用之前必须例示实例如:WebCookie wc=new WebCookie();