百科问答小站 logo
百科问答小站 font logo



如何判断 string 是否为合法的 C# 变量名? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

去翻CSharp Language Specification。

       本节给出的标识符规则完全符合 Unicode 标准附件 31 推荐的规则,但以下情况除外:允许将下划线用作初始字符(这是 C 编程语言的传统),允许在标识符中使用 Unicode 转义序列,以及允许“@”字符作为前缀以使关键字能够用作标识符。  identifier: available-identifier @   identifier-or-keyword  available-identifier: An identifier-or-keyword that is not a keyword  identifier-or-keyword: identifier-start-character   identifier-part-charactersopt  identifier-start-character: letter-character _ (the underscore character U+005F)  identifier-part-characters: identifier-part-character identifier-part-characters   identifier-part-character  identifier-part-character: letter-character decimal-digit-character connecting-character combining-character formatting-character  letter-character: A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl  A unicode-escape-sequence representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl  combining-character: A Unicode character of classes Mn or Mc  A unicode-escape-sequence representing a character of classes Mn or Mc  decimal-digit-character: A Unicode character of the class Nd  A unicode-escape-sequence representing a character of the class Nd  connecting-character:   A Unicode character of the class Pc A unicode-escape-sequence representing a character of the class Pc  formatting-character:   A Unicode character of the class Cf A unicode-escape-sequence representing a character of the class Cf  有关上面提到的 Unicode 字符类的信息,请参见《Unicode 标准 3.0 版》的第 4.5 节。 有效标识符的示例包括“identifier1”、“_identifier2”和“@if”。 符合规范的程序中的标识符必须遵循由“Unicode 标准化格式 C”(按“Unicode 标准附录 15”中的定义)定义的规范格式。当遇到非“标准化格式 C”格式的标识符时,怎样处理它可由 C 的具体实现确定,但是不要求诊断。 使用前缀“@”可以将关键字用作标识符,这在与其他编程语言建立接口时很有用。字符 @ 并不是标识符的实际组成部分,因此在其他语言中可能将此标识符视为不带前缀的正常标识符。带 @ 前缀的标识符称作逐字标识符 (verbatim identifier)。允许将 @ 前缀用于非关键字的标识符,但是(从代码书写样式的意义上)强烈建议不要这样做。      



  

相关话题

  如果编程语言有性别?Java、C++、C、C#是男是女?是GAY还是LES? 
  实际开发中ref、out参数有多大作用? 
  C#的dynamic使用中有什么需要注意的地方,以免滥用? 
  C# 中如何在不使用 async和await 关键字的情况下构建一个按照顺序执行的 Task 集合? 
  作为 .Net 开发人员,我们为什么要学习 CLR? 
  为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处? 
  C++ 和 Java 同样是静态语言,为什么 Java 的代码提示可以做的十分强大? 
  如何评价微软新推出的 .NET 5? 
  C# 中如何在不使用 async和await 关键字的情况下构建一个按照顺序执行的 Task 集合? 
  c#关于异步编程? 

前一个讨论
世界上第一个吃榴莲的人究竟是抱着什么样的心态?
下一个讨论
常说人们杀动物是很残忍的事情,那么自然界每天都有天敌捕食猎物,将猎物生吞活剥,有人会说天敌很残忍吗?





© 2024-11-12 - tinynew.org. All Rights Reserved.
© 2024-11-12 - tinynew.org. 保留所有权利