判断是否是静态方法的标识
有static关键字:静态方法
没有static关键字:实例方法
区别:静态方法不对特定实例进行操作,静态方法只能访问类中的静态成员,而不能使用实例成员。访问静态方法只能使用类名,而不需要创建对象,也不能使用对象名来引用。
实例方法可以使用类的任何成员。调用实例方法时,必须使用类的实例或对象来引用。实例方法对类的某个给定的实例进行操作,在实例方法类中可以使用this来访问该实例。调用实例方法时,必须先创建一个对象。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace ConsoleApplication4 { class Program { int exampleVar = 0;//实例成员变量 static int staticVar = 0;//静态成员变量 static void staticMethod()//静态方法 { //exampleVar=1;无法在静态方法中调用实例类成员 staticVar = 1; } void exampleMethod()//实例方法 { //实例中可以调用任何成员,包括静态成员 staticVar = 1; exampleVar = 1; } static void Main(string[] args) { Program.staticMethod();//调用静态方法时直接调用 //调用实例方法时需要将类实例化成对象 Program p = new Program(); p.exampleMethod(); // Program.exampleMethod();不能通过访问静态方法的途径去访问实例方法; Console.ReadKey(); } } }静态方法只能访问静态成员
实例方法可以访问静态和实例成员
之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许静态方法使用实例成员变量,这是错误的。基于同样的道理,静态方法中也不能使用关键字this。