asp.net网站中的数据操作方法有没有必要用static修饰?到底什么时候用static关键字?
比如我要定义一个插入一条数据的方法InsInfo(string name,sting pwd)
是要定义成 
(1)
public class InfoAction
{
//之所以定义int ,插入成功返回1,失败返回0
public int InsInfo(string name,sting pwd)
{}
}还是
(2)
public class InfoAction
{
public static int InsInfo(string name,sting pwd)
{}
}如果用(1)方法,每次用的都要用InfoAction aaa=new InfoAction()
这样要new大量的对象,是不是很占内存?

解决方案 »

  1.   

    现在我都是用
    InfoAction   aaa=new   InfoAction()
    可网站没点几次就"内存不能为writen"了 
      

  2.   

    一直都是用new的,记着每次用完要关闭链接,实现IDisposable接口
      

  3.   

    还是
    (2)
    public class InfoAction
    {
    public static int InsInfo(string name,sting pwd)
    {}
    }
    ==============
    选择方法二吧。
    个人理解:一般情况下,如果你声明的对象一成不变,例如,string str=System.configuration.configurationsettings.appsettings["conn"];
    取得web.config中连接数据库的信息,那么你就可以声明为static,因为这个对象是不变的。1. 通用方法和通用变量一般应该声明为static ;
    2. 频繁使用的资源;
      

  4.   

    如果你的方式随着具体的对象的改变而改变的话,那么就用第一种,比如说,以person为类,而对象就是具体的人了,不同的人的名字肯定不同,那么肯定是要用第一种了,不可能所有的对象都使用一个名字的,这样乱套了 呵呵
    比如说student类,学生肯定是学习的,你学习,他学习,所以学习对于整个student类的所有对象来讲都是一样的,所以就可以把学习写成static了,当然如果要比较学生学习好坏程度的话,所有的学生肯定是不一样的,所以学习好坏的话就不能用static了。
    static就是静态的意思,也就是不随着对象的改变而改变。
      

  5.   

    那比如我要做一个返回datatable类型的方法呢,是用static来修饰吗?
    比如:
    public datatable GetMyinfo(string myid)
    {
    datatable dt=new datatable();
    //...取得查询的结果,是一个数据表
    return dt;
    }上面的操作是根据myid的不同,返回得到的dt也肯定不同,那上面的GetMyinfo(string myid)
    是不是要用static来修饰?
    在网站中是不是要写成这样:
    public static datatable GetMyinfo(string myid)
    {
    datatable dt=new datatable();
    //...取得查询的结果,是一个数据表
    return dt;
    }???
    注:上面的方法是在一个class中,属于dal.cs