C#入门8.3——静态方法和实例方法
2016-08-14 18:22
211 查看
判断是否是静态方法的标识
有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。
有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。
相关文章推荐
- C#调用存储过程的方法,和简单存储过程创建的方法实例。【转载】为入门的朋友引路,大家互相学习。
- C# 反射详解:定义、创建对象、调用实例方法及静态方法
- .Net Remoting 事件回调 Client 函数方法完整实例: C# 实现控制台网络聊天室 (Console Remoting ChatRoom)
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)_AX
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)
- C# 2005 简短方法实现软件仅打开一个实例的方法
- Win2003下关于c#读写Excel时,出现存取被拒&Excel实例化出错的一个解决方法
- 关于批处理文件编写的入门方法-带实例
- C#声明方法实例说明
- 实例说明java中覆盖静态方法和非静态方法的不同
- Visual Studio 2005(C#)中只允许一个实例运行的一种方法
- C#声明方法实例说明
- js入门实例の构造函数/方法的定义和调用/原型对象
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)_AX -转载
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)_AX
- js入门实例の构造函数\方法的定义和调用\原型对象
- Visual Studio 2005(C#)中只允许一个实例运行的一种方法
- Visual Studio 2005(C#)中只允许一个实例运行的一种方法
- js入门实例の构造函数/方法的定义和调用/原型对象