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



  

相关话题

  C# 如何在调用控件时做到 Thread-safe(线程安全)? 
  求指教搜索关键词:.net后台如何获取查询数据库得到的结果集以及如何返回给ajax? 
  在C#中 String.Empty和 "" 有什么区别? 
  如何学习递归呢? 
  c# 双核多线程并行计算 Parallel是不是最优方案? 
  在知乎,Java 相对于 C# 来说是不是被过分贬低了? 
  VS2013如何在不使用插件的情况下显示引用数量? 
  WPF中如何在Parallel.For中利用Dispatcher.Invoke实时更新进度条? 
  网游服务器逻辑和传输如何分层/解耦? 
  既然在语言层面上 Java 要落后于 C#,那为何国内 Java 架构到处都是? 

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





© 2025-06-16 - tinynew.org. All Rights Reserved.
© 2025-06-16 - tinynew.org. 保留所有权利