每题20分,谢谢!
  1.具体类是在实例化的时候分配内存等资源,那么抽象类呢?这个抽象类中有static方法,这个类的这些方法是在程序加载时加载整个抽象类吗?
  2.抽象类中的静态字段,只在第一次运行实例化,关掉IE第二次运行就不实例化了?例如类库中的下代码
public abstract partial class test
{
      public static SqlConnection conn = new SqlConnection();        public static string c(){            if (conn == null) c = "null";
            else
            {                c = "done"
                conn == null;
            }            return c;
    
        }
}
  然后在页面中调用Response.Write(test.c());,第一次结果是done,关掉IE,第二次结果是null,说明conn只在第一次运行时被实例化了,而第二次没有。

解决方案 »

  1.   

    第二题
    public abstract partial class test
    {
        public static SqlConnection conn = new SqlConnection();    public static string c(){
            string a;
                if (conn == null) 
                    a = "null";
                else
                {                a = "done";
                    //conn = null;
                }            return a;
        
            }
    }因为你使的是静态方法  所以当你工程运行时就已经加载 相当于全局变量 只有把工程停止再从新启动时才会变成第一次加载时的样子  所以你第一次运行 赋值为done后 再第二次加载时还保留第一次加载时的值是必然的  你要想一直让他为done 除非你把那行给注释掉了
      

  2.   

    c = "null";??????/
    c是什么啊?????看似好像是方法名...方法可以赋值?你还能编绎过去???---估计是我知识面太浅了...
      

  3.   

    第一题:
    你说的“实例化的时候分配内存等资源”是对的
    至于后面说的抽象类 因为抽象类并没有办法实力化 在里面的static方法 只能通过类名.方法名去调用
    所以只有在当你调用的时候 这个类 以至这个类的这些方法 才会真正的被加载 才会真正的被分配内存等资源,而且是一直占用内存资源,除非停止整个工程。
      

  4.   

    1。通过类名.某方法()这种方式调用,内存是加载整个抽象类,还是只加载被调用的方法?
    =============================================================================
    是加载整个抽象类 毕竟是你用抽象类调用 所以要先加载类才能调用里面的方法
    2。如果程序发布到服务器,“停止整个工程”应该怎样理解?是客户端关掉浏览器吗?
    =============================================================================
    你网站是通过部署到服务器IIS上供客户端用户浏览,所以从起服务器就可以了,或停止IIS服务