asp.net 关于静态方法问题
发布网友
发布时间:2022-05-14 08:58
我来回答
共3个回答
热心网友
时间:2022-04-27 16:06
当然是可以的,不过你定义不同在调用的时候也不同。
你的方法public static DataSet(string sql,IParam[] params)首先也是定义在某个Class里的,假设它是定义在类MyClassA里的,那么我要在另外一个类MyClassB里调用它,代码是:
MyClassA.DataSet();
调用方法是直接用 类名+方法名
如果你将DataSet()定义为非静态的:
public DataSet(string sql,IParam[] params)
那么在类MyClassB里调用它,代码就要变成:
MyClassA mc=new MyClassA();
mc.DataSet();
看以看到,调用方法是类的实例名+方法名
多去体会一下静态方法和非静态方法的区别,静态方法属于类的,可以用类名直接调用,非静态方法属于类的实例的,需要用实例名去调用
热心网友
时间:2022-04-27 17:24
如果定义成非静态的可不可以啊,有什么区别啊。
一定可以的。
类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
热心网友
时间:2022-04-27 18:58
静态方法,比如你看到的这个,通常是写在Asp.net的APP_CODE文件夹的静态类当中。
静态方法的好处是,你不需要实例化这个类,就可以调用该方法
比如
class C1
{
public static void Foo(){...}
public void Bar() {....}
}
你要调用静态方法Foo的话,只需要C1.Foo()就行了
你要调用非静态方法Bar的话,就得
C1 c = new C1();
c.Bar();
当类中的一个方法与类的实例没有什么关系时(比如公共方法),最好定义为静态方法,以免调用起来麻烦。