11
|
Ian R. O'Brien Mamedov · 技术社区 · 14 年前 |
![]() |
1
7
静态方法与实例方法的不同之处在于 没有实例 需要创建它们所属的类的名称才能调用它们。调用静态方法时,实际上是使用 而不是类型的实例-这应该加强静态方法不在实例上调用的思想。 值得重复和强调 不需要类的实例来调用该类的公共静态方法。
回答你问题的其他部分。假设所讨论的代码是实例方法的一部分,则必须实例化某些内容
|
![]() |
2
3
我强烈建议您阅读以下文章: Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects 它解释了.NET运行时如何在较低级别上工作,并解释了加载程序堆等内部细微差别以及静态类/成员如何工作。从技术上讲,类静态成员的“static instnace”有一个初始实例化。但是,运行时处理此初始化的方式与处理类实例的方式不同。静态类存储在加载程序堆上,这些堆不是GC管理的。装载机堆是以静态方式分配和增长的,不会被压缩。这篇文章读得很好,应该能让你对CLR的工作原理有一个深入的了解。
|
![]() |
3
1
我真希望这有帮助!=) |
![]() |
4
0
考虑到你目前执行的
但是,只要
|
![]() |
5
0
是的,您需要创建一个Bar的实例,但不能为Foo类创建,因为它是一个静态metod。唯一的区别是,静态方法是在类级别(编译时)而不是对象级别(运行时)调用的,所以不需要实例化Foo类。 |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 2 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 2 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 2 年前 |