gpt4 book ai didi

c# - 静态属性引用非静态方法

转载 作者:行者123 更新时间:2023-11-30 18:55:44 29 4
gpt4 key购买 nike

静态属性如何引用非静态方法?

例子:

public static int UserID
{
get
{
return GetUserID();
}
}

private int GetUserID()
{
return 1;
}

当我尝试编译它时,出现错误:“非静态字段、方法或属性“GetUserID()”需要对象引用

最佳答案

这行不通。

当您定义静态属性(或静态方法)时,您定义的属性适用于 type 类,而不是类的实例。

另一方面,实例属性和方法作用于特定的、构造的类实例。为了使用它们,您需要引用该特定实例。 (然而,反之亦然。)

举个例子,想想 Fruit 和一个“Apple”类。假设 apple 类有一个实例属性,表示 Apple 在这个时间点的成熟度。

你不会用“苹果”来形容它有多成熟,而是用一个特定的“苹果”(实例)来形容。另一方面,您可以有一个苹果实例,并询问它是否包含种子(可能在 Apple 类本身(静态)上定义)。

关于c# - 静态属性引用非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2654521/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com