为什么不能在.Net的静态方法中使用关键字" this"?
时间:2020-03-06 14:43:48 来源:igfitidea点击:
我试图在静态方法中使用this
关键字,但是编译器不允许我使用它。
为什么不?
解决方案
这很简单。关键字" this"返回对包含它的类的当前实例的引用。静态方法(或者任何静态成员)不属于特定实例。它们存在而没有创建类的实例。在MSDN文档中,有更多关于深度静态成员以及为什么/何时使用它们的更深入的解释。
静态方法是特定于类的,而不是特定于实例的。 " this"表示运行时类的实例,因此不能在静态上下文中使用,因为它不会引用任何实例。
相反,应该使用该类的名称,并且我们将只能访问该类中的静态成员。
这表示当前的实例对象,并且没有使用静态方法的实例。
另外要注意的是,我们可以通过Static方法访问该类的成员或者将其静态化。使下面的示例有效,有时非常有用。
public static void StaticMethod(Object o) { MyClass.StaticProperty = o; }
静态方法中没有" this"对象引用。