我如何声明一个名称为静态的类
Posted
技术标签:
【中文标题】我如何声明一个名称为静态的类【英文标题】:How can i declare a class having name static 【发布时间】:2018-05-28 09:07:02 【问题描述】:我重命名了一个名为 static 的类,我有编译时错误
public class static
错误 CS0116 命名空间不能直接包含字段或成员等成员
【问题讨论】:
使用转义@static
来使用关键字作为标识符(但不建议这样做,使用其他类名)。
如果你喜欢这个名字,请使用public class Static
。作为奖励,它还将遵循标准 C# 命名类约定(首字母大写)。
“这不公平”...好吧,这是一个见仁见智的问题(我没有投反对票),但是如果您将鼠标悬停在投票按钮上,您会看到它可以给出,因为“这个问题没有显示任何研究努力,不清楚或没有用”。就个人而言,我认为您可能已经搜索了错误消息并至少找到了原因,并且可能找到了解决方案。所以也许投反对票的人认为你可以做更多的研究,我不知道。
你的努力在哪里?您已经逐字报告了错误,仅此而已。没有证据表明任何试图解释或修复它。即使是初学者,您仍然可以在网上或书籍中查找现有信息。我很感激您在搜索时并不总是确切地知道要输入什么,但有时这是一个反复试验的过程。无论如何,答案现在在下面,所以它有点没有实际意义。我只是想帮助您了解人们为什么会投票赞成和反对。
@JohnDoe 但问题是,如果您曾经在 Google 上搜索过如何转义信号词(与使用“/
”声明文件路径相同),那么您需要以某种方式转义此信号序列它总是用@
完成。这就是我们所说的,只是一些努力。关于这个特定主题有很多问题。 :-)
【参考方案1】:
使用保留关键字作为类名确实是个坏主意,但这里是这样做的方法
public class @static
....
//create a instance of class static
var temp = new @static();
【讨论】:
【参考方案2】:你不知道的简短回答
关键字是预定义的、保留的标识符,具有特殊的 对编译器的意义。它们不能用作您的标识符 除非它们包含 @ 作为前缀。例如,@if 是有效的 标识符,但 if 不是因为 if 是关键字。中的第一张桌子 本主题列出了在任何部分作为保留标识符的关键字 一个 C# 程序。本主题中的第二个表列出了上下文 C#中的关键字。上下文关键字仅在 有限的程序上下文,可以用作除此之外的标识符 语境。通常,随着新关键字添加到 C# 语言中,它们 添加为上下文关键字以避免破坏程序 写在早期版本中。
你可以在这里找到更多信息
C# Keywords
但是你可以在 cmets 中指出使用前缀 @ 符号,但是这是严重的代码异味
【讨论】:
以上是关于我如何声明一个名称为静态的类的主要内容,如果未能解决你的问题,请参考以下文章
为啥静态成员函数只能在类定义中声明为静态,而不能在其自己的定义中声明?
这是啥意思:可序列化的类没有声明一个静态的最终 serialVersionUID 字段? [复制]