gpt4 book ai didi

c# - 关于任何静态的概念......如方法,成员等

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:04 24 4
gpt4 key购买 nike

我有一个疑问……

1) 我们可以从任何非静态方法调用和访问任何静态方法或变量,但是从静态方法我们不能访问任何非静态方法或变量.....为什么。

2) 但我们可以从静态方法创建任何类的实例。

请告诉我原因,以便更好地理解我的问题的答案。

class Class1
{
static int x=0;
int w = 0;
private static Class2 test()
{
w = 88; // give error because w is not a static member.
test1(); // give error because test1() is not a static function.
Class2 z = new Class2(); // here i am creating instance of class2
return z;
}

private int test1()
{
x = 9;
return x;
}
}

class Class2
{

}

谢谢

最佳答案

看看 MSDN关于静态类的文章和 basic tutorial关于静态类。

在回答您的直接问题时,静态方法不是实例化对象 (this) 的一部分,因此无法访问任何需要实例化对象的方法/字段。

在您的示例中,test1() 可以很容易地在字段 w 上运行。在这种情况下,外部调用者可以在没有创建 Class1 的任何字段的情况下调用 Class1.test()。如果 Class1 已经实例化,它的字段已经创建,因此可以对其进行操作。

我找到了这个 Stackoverflow Post值得一读以获得更多静态背景知识。

关于c# - 关于任何静态的概念......如方法,成员等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227663/

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