C# 关于c的点(.)算子#
很抱歉上次的帖子…这是另一篇 到目前为止,人们似乎使用(.)操作符: (1) 结构的进入构件 (2) 访问类的静态/常量成员 (3) 访问枚举类型的文本 (例如,dayofweek.cs的文件) 没有该结构/类/枚举的对象/实例 我知道运算符的意义可以取决于它的操作数 但有些在我看来有点奇怪 例如,在(3)的情况下: 用C#,我可以写:C# 关于c的点(.)算子#,c#,struct,static,enums,static-methods,C#,Struct,Static,Enums,Static Methods,很抱歉上次的帖子…这是另一篇 到目前为止,人们似乎使用(.)操作符: (1) 结构的进入构件 (2) 访问类的静态/常量成员 (3) 访问枚举类型的文本 (例如,dayofweek.cs的文件) 没有该结构/类/枚举的对象/实例 我知道运算符的意义可以取决于它的操作数 但有些在我看来有点奇怪 例如,在(3)的情况下: 用C#,我可以写: 星期一; 如果(a==DayOfWeek.Sunday)*做点什么…* 但在C语言中,我只能写: 星期一; 如果(a==星期日)*做点什么…* 例如,在(1
星期一;
如果(a==DayOfWeek.Sunday)*做点什么…*
但在C语言中,我只能写:
星期一;
如果(a==星期日)*做点什么…*
例如,在(1)的情况下:
在C语言中,只有当我们有了一个结构实例后,我们才能对它的成员进行操作
但在C#中,就像在中一样,我们可以直接使用结构的名称(即,DataTime
)来访问其成员(即,Maxticks
),即,DataTime.Maxticks
这显然有些不同,对吗
在哪里可以阅读此操作的详细教程或文档,说明如何使用此操作?只有语言规范
**事实上,我不喜欢通过一个接一个的例子来学习,因为他们没有告诉我“如何使用它”,只是告诉我“我能用它做什么”;不过,这两个是不同的
在C语言中,只有在我们有了一个结构的实例之后,我们才能这样做
对其成员的操作
但在C#中,就像struct的源代码中的两件事一样
DataTime在c#中,我们可以直接使用
结构来访问其成员(即Maxticks),即DataTime.Maxticks
这显然有些不同,对吗
当类的方法是static
方法时,我们可以使用类的名称,然后使用dot和我们想要调用的方法。在这种情况下,该方法属于类,而不属于我们使用new关键字创建的对象
根据C#规范:
方法是实现计算或操作的成员,可以
可以由对象或类执行。可以访问静态方法
通过课堂。实例方法通过的实例进行访问
这个班
关于static
关键字的最佳解释之一可以在中找到
对于C#中的
struct
成员的访问,您使用与访问C#中的类
成员相同的操作符,即点操作符。这就是为什么需要DayOfWeek.Sunday
的原因,正如您所注意到的,
操作符用于访问成员
如果该成员被标记为static
,那么您可以通过类名引用它,因为一个类只有一个静态“实例”(由运行时实例化)。这就是您在DateTime.MaxTicks
中看到的
枚举不是
静态的
,但其成员的访问方式相同,因为您需要使用枚举名限定成员名。根据C#规范(V5.0,第14.3节):
从所有其他代码中,枚举成员的名称必须限定为
其枚举类型的名称。枚举成员没有任何已声明的
可访问性如果枚举成员包含枚举类型,则可以访问该成员
可以访问
的一个用途是限定某些内容(例如,当您显式声明类来自哪个命名空间时)
基本上,只要您想访问某个对象的成员,就可以使用
。只要知道它是实例还是静态变量,就可以知道是否需要该类型的实例,或者是否可以只使用类名
还可以用于限定某个名称,在为类指定名称空间或使用枚举时使用该名称。将其视为导航名称空间。您的项目结构可以是:
- MyApp
- 形式
- 主要形式
- ShowForm()
- IsOpen()
- 主要形式
- 班级
- 某类
- SomeStaticMethod()
- 非静态方法()
- 其他类
- 某物
- 枚举值一
- 枚举值二
- 某物
- 某类
- 存储库
- 本刊
- 形式
ShowForm()
void将是MyApp.Forms.MainForm.ShowForm()
,就像在OtherClass
中引用枚举一样,将像MyApp.Classes.OtherClass.SomeEnum.EnumValueTwo
一样
当您使用语句向类中添加一个
时,显然不需要执行完整的限定名称空间,但希望这能说明这个概念。仔细阅读static关键字。我建议您阅读本节。这都是关于范围的。。。[instanceName].[instanceMember],[ClassName].[StaticMember],[EnumName].[EnumMember],此[CurrentInstanceMember]-左侧定义了作用域,即。基本上总是指“在左手边的范围内”,然后右手边是你试图访问的范围的哪一部分。非常感谢。。。但是对于DayOfWeek部分,DayOfWeek是一个枚举,而不是一个类;我在哪里可以找到一份官方文件,上面说可以使用DayOfWeek.Sunday
检索枚举DayOfWeek的七个值之一“Sunday”?毕竟,这在C?@J.C.看来是不允许的。欢迎你,伙计。该链接提供您正在查找的文档。如果有帮助的话,请告诉我。非常感谢你的帮助!根据人们对我的反馈和我最近的经验,MSDN是C#程序员(尤其是fo