实例方法和静态方法有区别吗?

实例方法和静态方法有区别吗?对于很多人来说,这是一个愚蠢的问题。因为我们都知道它们的区别,实例方法作用于某个具体的上下文对象,该上下文对象可以利用this关键字获得;静态方法则是定义在某个类型中,不存在上下文对象的概念。但是如果我们从函数的角度来看的话,不论是静态方法还是实例方法都是一个用于处理输入参数的操作,貌似又没有什么区别。

以如下这个用于封装一个整数的IntValue类型为例,它具有两个AsInt32方法,实例方法返回当前InValue对象的_value字段;静态方法将IntValue对象作为参数,返回该对象的_value字段。我们的问题是:这两个AsInt32方法有分别吗?

var target = new IntValue(123);
target.AsInt32();
IntValue.AsInt32(target);

public class IntValue
{
    private readonly int _value;
    public IntValue(int value) => _v
var target = new IntValue(123); target.AsInt32(); IntValue.AsInt32(target); public class IntValue { private readonly int _value; public IntValue(int value) => _v
经验分享 程序员 微信小程序 职场和发展