为什么关键字'this'不能用于静态方法?

air*_*bai 14 c# this static-members

为什么不能this在静态方法中使用关键字?我想知道为什么C#定义了这个约束.这种约束可以带来什么好处?

[更新]:实际上,这是我在采访中遇到的一个问题.我知道'静态'和'这个'的用法,基于你的所有回复,我想我知道为什么这两个不能一起使用.也就是说,静态方法用于更改状态或在类型级别执行某些操作,但是当您需要使用"this"表示您想要更改状态或在实例级别执行某些操作时.为了区分类型的状态变化和实例的状态变化,c#donot允许在静态方法中使用'this'.我对吗?

Yur*_*ich 60

因为this指向类的实例,所以在静态方法中没有实例.

这个关键字指向类的当前实例.静态成员函数没有this指针

你会注意到静态成员的定义是

使用static修饰符声明一个静态成员,该成员属于该类型本身而不是特定对象

这就是为什么this没有什么可指向的.

  • 我无法想象一个静态的动物,更不用说一个吃的动物. (21认同)
  • 想想你如何调用静态方法.Class.Method()like Animal.Eat()你从不需要一个实例(new Animal())来调用静态方法.这就是为什么没有. (4认同)
  • 请解释为什么静态方法中没有实例:) (2认同)

Sha*_* D. 13

this是当前对象的实例.使用静态方法,没有当前对象,因此this不存在.它不是一个约束,但方法的整个点是静态的.