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



  

相关话题

  如何在在asp项目中正常调用非托管c++dll? 
  带汉字的时间怎么转换成时间类型呢? 
  你见过最烂的代码长什么样子? 
  关于Qt性能的损失,有没有一个可以量化的概念? 
  C# 的扩展方法是否是一个糟糕的设计? 
  学了 3 年 Java,包括自学和大学学习,如今工作一开始需要我学 C#,觉得不甘心怎么办? 
  C# 引用类型相比于值类型意义何在? 
  如何评价"Null reference - my billion-dollar mistake"? 
  .NET 平台中有很多 BS 框架,能介绍一下他们之间的关系和实用价值吗? 
  微软开放.net框架源代码后,未来的发展有哪些可期待的? 

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





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