答案 0 :(得分:4)
type declaration is implicitly a static member
对我来说很有意义
因为如果你有班级:
class Foo
{
public class Bar
{
}
}
您无法通过以下方式访问班级Bar
Foo f = new Foo();
Bar b =new f.Bar();
(我甚至不确定如何写它以使其有意义。)
如果您想访问Bar
课程,则需要执行以下操作:
Bar b = new Foo.Bar()
您可以通过类而不是实例访问它。对象
因此,Bar
是Foo
的静态成员。
答案 1 :(得分:2)
在本文的上下文中,我认为他们定义的类型只是内部的定义 - struct
s,内部 - class
es和enum
s - 其中始终可以在静态上下文中作为类型引用。
答案 2 :(得分:2)
这意味着当你定义这样的类时,
public class Message
{
const int i = 10;
enum NewType{ typeval, typevale2 }
}
这里两者都是隐式静态成员。
答案 3 :(得分:0)
Const是隐式静态的,但它与普通静态字段的不同之处在于它在程序执行期间无法更改。它仍然是静态的..
答案 4 :(得分:0)
类型声明
类型声明是类声明(第10.1节),结构声明(第11.1节),接口声明(第13.1节),枚举声明(第14.1节)或委托声明(第15.1节)。
来自 Type declarations MSDN文档
静态成员
当field,method,property,event,operator或constructor声明包含static修饰符时,它声明一个静态成员。另外,常量或类型声明隐式声明了静态成员。静态成员具有以下特征:
- 当在EM的形式的成员访问(第7.5.4节)中引用静态成员M时,E必须表示包含M的类型.E表示实例是编译时错误。
- 静态字段只标识一个存储位置。无论创建了多少个类实例,都只有一个静态字段的副本。
- 静态函数成员(方法,属性,事件,操作符或构造函数)不对特定实例进行操作,并且在此类函数成员中引用此函数是编译时错误。
来自 Static and instance members MSDN文档
这意味着Constants
和所有Type declaration
都是静态的,没有添加关键字static
。