百科问答小站 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)。允许将 @ 前缀用于非关键字的标识符,但是(从代码书写样式的意义上)强烈建议不要这样做。      



  

相关话题

  有没有什么工具可以帮助理解源代码的? 
  作为 .Net 开发人员,我们为什么要学习 CLR? 
  如果 C# 当年设计成一个彻底编译到机器码的但有运行时的 AOT 语言,能不能真的拿来代替 C++? 
  C#每个类代码一大坨,有什么好的方能展示他的公有方法和属性? 
  这篇博文c#比JAVA慢这么多 为什么? 
  为什么微软的编程语言C# F#的编译器要那么多黑科技? 
  ADO.NET的SqlParameter(String, Object)的构造函数第二个参数不能为0? 
  为什么微软的编程语言C# F#的编译器要那么多黑科技? 
  同样是巨头的语言,为什么中国是 Go 最热的国家,而 C# 越来越少? 
  面向对象中接口应该更抽象还是更具象? 

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





© 2025-01-26 - tinynew.org. All Rights Reserved.
© 2025-01-26 - tinynew.org. 保留所有权利