百科问答小站 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#中字符串可以使用可变大小的内存,为什么数字不能? 
  请各位前辈指导下简练代码的思路? 
  对于C#里面的协变和逆变的理解的问题? 
  VS2015重构封装字段时出现错误,请问有哪些可能的原因呢? 
  为什么C# MVC5,DateTime属性默认的JSON解析值的格式为“/Date()/”? 
  对象和实例的在不同编程语言中的有什么区别? 
  最近好多人聊低代码,难道大家没听过C#开发windows form么? 
  最近好多人聊低代码,难道大家没听过C#开发windows form么? 
  学C#需要学好C++么? 
  为什么使用C#开发软件的公司和程序员都很少? 

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





© 2025-04-05 - tinynew.org. All Rights Reserved.
© 2025-04-05 - tinynew.org. 保留所有权利