静态属性如何引用非静态方法?
例:
public static int UserID
{
get
{
return GetUserID();
}
}
private int GetUserID()
{
return 1;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我得到错误:"非静态字段,方法或属性需要对象引用"GetUserID()"
Ree*_*sey 12
这不起作用.
定义静态属性(或静态方法)时,您将定义一个适用于类类型的属性,而不是类的实例.
另一方面,实例属性和方法适用于特定的,构造的类实例.要使用它们,您需要引用该特定实例.(反过来说,没问题.)
作为一个例子,想想Fruit和一个"Apple"类.假设苹果类具有一个实例属性,这个属性是Apple此时的成熟程度.
你不会像苹果那样描述它的成熟程度,而是描述一个特定的"Apple"(实例).另一方面,您可以拥有一个苹果实例,并询问它是否包含种子(可能在Apple类本身上定义(静态)).