C#入门8.3——静态方法和实例方法

判断是否是静态方法的标识

有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。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值