请教各位高手:为了少写一行代码,我加入静态化的Instance函数,是否正确?谢谢!!!自从采用这种方式后,可以少写一行新建类的代码,但发现内存似呼爆涨的利害,是否与
这种结构不合理造成的呢?1) 类的定义  public class Users
{
public static Users Instance()
{
return new Users();
} public int Login(AccountInfo accountInfo) 
{
...
}       }2) 调用类int retval = Users.Instance().Login(accountInfo) 

解决方案 »

  1.   

    应当不是static instance的原因吧
      

  2.   

    Login这个方法的代码是怎么样的?是不是内部的问题
      

  3.   

    你每次使用就创建一个Users的新实例,当然内存上涨得快啦。
      

  4.   

    不会和静态成员有关系,.NET程序本身占用内存就比较厉害,
    如果要想办法降低内存的占用,看看这篇文章,希望对你有帮助:使用AppDomains来降低.NET程序的内存开销
    http://www.codeproject.com/dotnet/AppDomainMemImprovement.asp
      

  5.   

    如果login里面对象不多的话不应该暴涨嘛.
    关键是你键了多少个对象~~??
      

  6.   

    谢谢各位:TO:  Ivony() 你每次使用就创建一个Users的新实例,当然内存上涨得快啦。大哥, 如果不新建一个USERS新实例, 哪我如何调用这个类的功能呢?
    请大哥指教啊. ...
      
     
      

  7.   

    单看你的写出来的代码感觉没有问题,每次都new,实际上GC会负责把以前的无人引用对象释放。
    不过不明白你这么做少写了哪一行代码? 用new是一样的: int retval = new User().Login(...)
      

  8.   

    谢谢各位!终于发现问题点了:求援:DataSet真是害死人啊。用了他以后内存猛涨,大家帮忙看一下我的代码。谢谢!!!代码如下:已经释放了资源,但是每次刷新页面时,发现w3wp.exe内存的使用节节往上走,
    不用几分钟能涨几十M,upGetTopSubCategory是一个存储过程,每次只返回100多条记录,
    哪儿的问题造成内存上涨呢?去掉这块代码,怎么刷新也不会有问题。/// <summary>
    /// 显示主分类信息
    /// </summary>
    private void ShowCategory()
    {
    SqlConnection sqlConn = new SqlConnection(Database.CONN_STR_WEB_DB); SqlDataAdapter da = new SqlDataAdapter("upGetTopSubCategory",sqlConn); da.SelectCommand.CommandType = CommandType.StoredProcedure;  SqlParameter parm = new SqlParameter("@type", SqlDbType.TinyInt, 1);
    parm.Value = type; da.SelectCommand.Parameters.Add(parm);  DataSet ds = new DataSet(); if(da!=null)
    {
    da.Fill(ds,"subCategory");
    da.Dispose();
    } ds.Clear();
    ds.Dispose();
    }
      

  9.   

    如果在程序中只想获得1个实例的话,可以采用单件设计模式。
    参见:http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242318