⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9.4.2.htm

📁 This ECMA Standard specifies the form and establishes the interpretation of programs written in the
💻 HTM
字号:
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Hyperlinked ECMA C# Language Specification</title><meta name="author" content="Jon Jagger" /><link rel="stylesheet" href="ecma334.css"></link></head><body><div align="right"><em><a href="http://www.jaggersoft.com">Jon Jagger</a></em></div><div align="right"><a href="mailto:jon@jaggersoft.com">jon@jaggersoft.com</a></div><form method="get" action="http://search.atomz.com/search/"><input size="30" name="sp-q"></input><input type="submit" value="Search C# Spec"></input><input type="hidden" name="sp-a" value="sp10024177"></input><input type="hidden" name="sp-f" value="ISO-8859-1"></input></form><a href="toc.htm">Table of Contents</a> <a href="1.htm">1</a> <a href="2.htm">2</a> <a href="3.htm">3</a> <a href="4.htm">4</a> <a href="5.htm">5</a> <a href="6.htm">6</a> <a href="7.htm">7</a> <a href="8.htm">8</a> <a href="9.htm">9</a> <a href="10.htm">10</a> <a href="11.htm">11</a> <a href="12.htm">12</a> <a href="13.htm">13</a> <a href="14.htm">14</a> <a href="15.htm">15</a> <a href="16.htm">16</a> <a href="17.htm">17</a> <a href="18.htm">18</a> <a href="19.htm">19</a> <a href="20.htm">20</a> <a href="21.htm">21</a> <a href="22.htm">22</a> <a href="23.htm">23</a> <a href="24.htm">24</a> <a href="25.htm">25</a> <a href="notes.htm">Notes</a> <a href="HyperlinkedCSharpECMA.zip">Download</a><span class="ruler"></span><span class="heading">ECMA-334 C# Language Specification</span><span class="navigate"><a href="9.4.1.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="9.4.3.htm"><img src="next.gif" alt="next" border="0" /></a></span><span class="clause-depth"><a href="8.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="10.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="9.htm">9</a></span><span class="clause-title-previous"> Lexical structure</span></span><span class="clause-depth"><a href="9.3.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="9.5.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="9.4.htm">9.4</a></span><span class="clause-title-previous"> Tokens</span></span><span class="clause-depth"><a href="9.4.1.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="9.4.3.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">9.4.2</span><span class="clause-title"> Identifiers</span></span><span class="locator">
     Paragraph 1</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P1S1"></a>The rules for identifiers given in this section correspond exactly to those recommended by the Unicode Standard Annex 15 except that underscore is allowed as an initial character (as is traditional in the C programming language), Unicode escape sequences are permitted in identifiers, and the "@" character is allowed as a prefix to enable keywords to be used as identifiers.</span> <span class="grammar-production"><span class="name"><a name="identifier"></a>identifier</span> :: <span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#available-identifier">available-identifier</a></span> </span><span class="rhs"><span class="terminal">@</span> <span class="non-terminal"><a href="9.4.2.htm#identifier-or-keyword">identifier-or-keyword</a></span> </span></span><span class="grammar-production"><span class="name"><a name="available-identifier"></a>available-identifier</span> :: <span class="rhs">An <span class="non-terminal"><a href="9.4.2.htm#identifier-or-keyword">identifier-or-keyword</a></span> that is not a <span class="non-terminal"><a href="9.4.3.htm#keyword">keyword</a></span> </span></span><span class="grammar-production"><span class="name"><a name="identifier-or-keyword"></a>identifier-or-keyword</span> :: <span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#identifier-start-character">identifier-start-character</a></span> <span class="non-terminal"><a href="9.4.2.htm#identifier-part-characters">identifier-part-characters</a></span><sub>opt</sub> </span></span><span class="grammar-production"><span class="name"><a name="identifier-start-character"></a>identifier-start-character</span> :: <span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#letter-character">letter-character</a></span> </span><span class="rhs">_ (the underscore character U+005F) </span></span><span class="grammar-production"><span class="name"><a name="identifier-part-characters"></a>identifier-part-characters</span> :: <span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#identifier-part-character">identifier-part-character</a></span> </span><span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#identifier-part-characters">identifier-part-characters</a></span> <span class="non-terminal"><a href="9.4.2.htm#identifier-part-character">identifier-part-character</a></span> </span></span><span class="grammar-production"><span class="name"><a name="identifier-part-character"></a>identifier-part-character</span> :: <span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#letter-character">letter-character</a></span> </span><span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#decimal-digit-character">decimal-digit-character</a></span> </span><span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#connecting-character">connecting-character</a></span> </span><span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#combining-character">combining-character</a></span> </span><span class="rhs"><span class="non-terminal"><a href="9.4.2.htm#formatting-character">formatting-character</a></span> </span></span><span class="grammar-production"><span class="name"><a name="letter-character"></a>letter-character</span> :: <span class="rhs">A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl </span><span class="rhs">A <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl </span></span><span class="grammar-production"><span class="name"><a name="combining-character"></a>combining-character</span> :: <span class="rhs">A Unicode character of classes Mn or Mc </span><span class="rhs">A <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> representing a character of classes Mn or Mc </span></span><span class="grammar-production"><span class="name"><a name="decimal-digit-character"></a>decimal-digit-character</span> :: <span class="rhs">A Unicode character of the class Nd </span><span class="rhs">A <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> representing a character of the class Nd </span></span><span class="grammar-production"><span class="name"><a name="connecting-character"></a>connecting-character</span> :: <span class="rhs">A Unicode character of the class Pc </span><span class="rhs">A <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> representing a character of the class Pc </span></span><span class="grammar-production"><span class="name"><a name="formatting-character"></a>formatting-character</span> :: <span class="rhs">A Unicode character of the class Cf </span><span class="rhs">A <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> representing a character of the class Cf </span></span></span><span class="paragraph"><span class="note">[Note: For information on the Unicode character classes mentioned above, see The Unicode Standard, Verson 3.0, 4-5. end note]</span> </span><span class="paragraph"><span class="example">[Example: Examples of valid identifiers include "identifier1", "_identifier2", and "@if". end example]</span> </span><span class="locator">
     Paragraph 2</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P2S1"></a>An identifier in a conforming program must be in the canonical format defined by Unicode Normalization Form C, as defined by Unicode Standard Annex 15.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P2S2"></a>The behavior when encountering an identifier not in Normalization Form C is implementation-defined; however, a diagnostic is not required.</span> </span><span class="locator">
     Paragraph 3</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P3S1"></a>The prefix "@" enables the use of keywords as identifiers, which is useful when interfacing with other programming languages.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P3S2"></a>The character @ is not actually part of the identifier, so the identifier might be seen in other languages as a normal identifier, without the prefix.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P3S3"></a>An identifier with an @ prefix is called a verbatim identifier.</span> <span class="note">[Note: Use of the @ prefix for identifiers that are not keywords is permitted, but strongly discouraged as a matter of style. end note]</span> </span><span class="paragraph"><span class="example">[Example: The example: <pre class="code-example">
class @class  
{  
   public static void @static(bool @bool) {  
      if (@bool)  
      System.Console.WriteLine("true");  
      else  
      System.Console.WriteLine("false");  
   }    
}  
class Class1  
{  
   static void M() {  
      cl\u0061ss.st\u0061tic(true);  
   }  
}  
</pre>defines a class named "class" with a static method named "static" that takes a parameter named "bool". Note that since Unicode escapes are not permitted in keywords, the token "cl\u0061ss" is an identifier, and is the same identifier as "@class". end example]</span> </span><span class="locator">
     Paragraph 4</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P4S1"></a>Two identifiers are considered the same if they are identical after the following transformations are applied, in order: </span><ul><li><span class="sentence"><span class="sentence-number">2</span> <a name="P4S2"></a> The prefix "@", if used, is removed.</span> </li><li><span class="sentence"><span class="sentence-number">3</span> <a name="P4S3"></a> Each <span class="non-terminal"><a href="9.4.1.htm#unicode-escape-sequence">unicode-escape-sequence</a></span> is transformed into its corresponding Unicode character.</span> </li><li><span class="sentence"><span class="sentence-number">4</span> <a name="P4S4"></a> Any <span class="non-terminal"><a href="9.4.2.htm#formatting-character">formatting-character</a></span>s are removed.</span> </li></ul></span><span class="locator">
     Paragraph 5</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P5S1"></a>Identifiers containing two consecutive underscore characters (U+005F) are reserved for use by the implementation; however, no diagnostic is required if such an identifier is defined.</span> <span class="note">[Note: For example, an implementation might provide extended keywords that begin with two underscores. end note]</span> </span><span class="ruler"></span><table><tr><td><table align="left" bgcolor="navy"><tr bgcolor="navy"><td><font face="Arial,sans-serif" size="6" color="yellow"><strong>{ JSL }</strong></font></td></tr></table></td></tr><tr><td><font face="Arial,sans-serif" size="2" color="navy"><strong>Jagger Software Ltd</strong></font></td></tr><tr><td><font face="Arial,sans-serif" size="2" color="navy"><strong>Company # 4070126</strong></font></td></tr><tr><td><font face="Arial,sans-serif" size="2" color="navy"><strong>VAT # 762 5213 42</strong></font></td></tr></table><img src="valid-html401.png" align="left" height="31" width="88" alt="Valid HTML 4.01" /><img src="vcss.gif" align="left" height="31" width="88" alt="Valid CSS" /></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -