C#C#静态方法与非静态方法的相比

C#的类中得以分包二种艺术:C#静态方法与非静态方法。那么他们的定义有啥两样吧?他们在选取上会有哪些分化啊?让我们来探望最直观的差距:使用了static
修饰符的不二法门为静态方法,反之则是非静态方法。

上面大家分四个地点来看望C#静态方法与非静态方法的差异:

C#静态方法与非静态方法相比较① 、C#静态成员:

①静态分子属于类具有,非静态成员属于类的实例全部。

②每创造贰个类的实例,都会在内部存款和储蓄器中为非静态成员新分配一块存款和储蓄;

静态成员属于类具有,为各样类的实例所公用,无论类成立了稍稍实例,

类的静态成员在内部存款和储蓄器中只占同一块区域。

C#静态方法与非静态方法相比较贰 、C#静态方法

1、C#静态方法属于类具有,类实例化前即可使用。

② 、非静态方法能够访问类中的任何成员,静态方法只好访问类中的静态成员。

三 、因为静态方法在类实例化前就能够选取,而类中的非静态变量必须在实例化之后才能分配内部存款和储蓄器,

这样,C#静态方法调用时胸中无数看清非静态变量使用的内部存储器地址。所以不可能使用。而静态变量的地址对类来说是永恒的,故能够应用。

C#静态方法与非静态方法比较三 、C#静态方法是一种新鲜的分子方法

它不属于类的某3个现实的实例,而是属于类本人。所以对静态方法不必要首先创造1个类的实例,而是选择类名.静态方法的格式

1.static办法是类中的叁个分子方法,属于全部类,即不用创设任何对象也能够向来调用!

static内部只好出现static变量和别的static方法!而且static方法中还无法动用this….等根本字..因为它是属于全部类!

2.静态方法成效上要比实例化高,静态方法的瑕疵是不自行举行销毁,而实例化的则能够做销毁。

3.静态方法和静态变量创造后平昔使用相同块内部存储器,而利用实例的艺术会创立多少个内存.

4.C#中的方法有三种:实例方法,静态方法.

C#静态方法与非静态方法相比较肆 、C#静态方法中得到类的名号

静态方法中用:

  1. string className =   
  2. System.Reflection.MethodBase.  
  3. GetCurrentMethod().ReflectedType.FullName; 

非静态方法中仍是能够用:

  1. string className = this.GetType().FullName;  

C#静态方法与非静态方法的分别解析意在诠释C#静态方法的意思,希望对你领悟和上学C#静态方法与非静态方法有所扶助。

相关文章