17.5.1.htm
来自「This ECMA Standard specifies the form an」· HTM 代码 · 共 8 行
HTM
8 行
<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="17.5.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="17.5.1.1.htm"><img src="next.gif" alt="next" border="0" /></a></span><span class="clause-depth"><a href="16.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="18.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="17.htm">17</a></span><span class="clause-title-previous"> Classes</span></span><span class="clause-depth"><a href="17.4.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="17.6.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="17.5.htm">17.5</a></span><span class="clause-title-previous"> Methods</span></span><span class="clause-depth"><a href="17.5.1.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="17.5.2.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">17.5.1</span><span class="clause-title"> Method parameters</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 parameters of a method, if any, are declared by the method's <span class="non-terminal"><a href="17.5.1.htm#formal-parameter-list">formal-parameter-list</a></span>.</span> <span class="grammar-production"><span class="name"><a name="formal-parameter-list"></a>formal-parameter-list</span> : <span class="rhs"><span class="non-terminal"><a href="17.5.1.htm#fixed-parameters">fixed-parameters</a></span> </span><span class="rhs"><span class="non-terminal"><a href="17.5.1.htm#fixed-parameters">fixed-parameters</a></span> <span class="terminal">,</span> <span class="non-terminal"><a href="17.5.1.htm#parameter-array">parameter-array</a></span> </span><span class="rhs"><span class="non-terminal"><a href="17.5.1.htm#parameter-array">parameter-array</a></span> </span></span><span class="grammar-production"><span class="name"><a name="fixed-parameters"></a>fixed-parameters</span> : <span class="rhs"><span class="non-terminal"><a href="17.5.1.htm#fixed-parameter">fixed-parameter</a></span> </span><span class="rhs"><span class="non-terminal"><a href="17.5.1.htm#fixed-parameters">fixed-parameters</a></span> <span class="terminal">,</span> <span class="non-terminal"><a href="17.5.1.htm#fixed-parameter">fixed-parameter</a></span> </span></span><span class="grammar-production"><span class="name"><a name="fixed-parameter"></a>fixed-parameter</span> : <span class="rhs"><span class="non-terminal"><a href="24.2.htm#attributes">attributes</a></span><sub>opt</sub> <span class="non-terminal"><a href="17.5.1.htm#parameter-modifier">parameter-modifier</a></span><sub>opt</sub> <span class="non-terminal"><a href="11.htm#type">type</a></span> <span class="non-terminal"><a href="9.4.2.htm#identifier">identifier</a></span> </span></span><span class="grammar-production"><span class="name"><a name="parameter-modifier"></a>parameter-modifier</span> : <span class="rhs"><span class="keyword">ref</span> </span><span class="rhs"><span class="keyword">out</span> </span></span><span class="grammar-production"><span class="name"><a name="parameter-array"></a>parameter-array</span> : <span class="rhs"><span class="non-terminal"><a href="24.2.htm#attributes">attributes</a></span><sub>opt</sub> <span class="keyword">params</span> <span class="non-terminal"><a href="19.1.htm#array-type">array-type</a></span> <span class="non-terminal"><a href="9.4.2.htm#identifier">identifier</a></span> </span></span></span><span class="locator">
Paragraph 2</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P2S1"></a>The formal parameter list consists of one or more comma-separated parameters of which only the last may be a <span class="non-terminal"><a href="17.5.1.htm#parameter-array">parameter-array</a></span>.</span> </span><span class="locator">
Paragraph 3</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P3S1"></a>A <span class="non-terminal"><a href="17.5.1.htm#fixed-parameter">fixed-parameter</a></span> consists of an optional set of attributes (<a href="24.htm">§24</a>), an optional ref or out modifier, a type, and an identifier.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P3S2"></a>Each <span class="non-terminal"><a href="17.5.1.htm#fixed-parameter">fixed-parameter</a></span> declares a parameter of the given type with the given name.</span> </span><span class="locator">
Paragraph 4</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P4S1"></a>A <span class="non-terminal"><a href="17.5.1.htm#parameter-array">parameter-array</a></span> consists of an optional set of attributes (<a href="24.htm">§24</a>), a params modifier, an <span class="non-terminal"><a href="19.1.htm#array-type">array-type</a></span>, and an identifier.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P4S2"></a>A parameter array declares a single parameter of the given array type with the given name.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P4S3"></a>The <span class="non-terminal"><a href="19.1.htm#array-type">array-type</a></span> of a parameter array must be a single-dimensional array type (<a href="19.1.htm">§19.1</a>).</span> <span class="sentence"><span class="sentence-number">4</span> <a name="P4S4"></a>In a method invocation, a parameter array permits either a single argument of the given array type to be specified, or it permits zero or more arguments of the array element type to be specified.</span> <span class="sentence"><span class="sentence-number">5</span> <a name="P4S5"></a>Parameter arrays are described further in <a href="17.5.1.4.htm">§17.5.1.4</a>.</span> </span><span class="locator">
Paragraph 5</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P5S1"></a>A method declaration creates a separate declaration space for parameters and local variables.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P5S2"></a>Names are introduced into this declaration space by the formal parameter list of the method and by local variable declarations in the block of the method.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P5S3"></a>All names in the declaration space of a method must be unique.</span> <span class="sentence"><span class="sentence-number">4</span> <a name="P5S4"></a>Thus, it is a compile-time error for a parameter or local variable to have the same name as another parameter or local variable.</span> </span><span class="locator">
Paragraph 6</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P6S1"></a>A method invocation (<a href="14.5.5.1.htm">§14.5.5.1</a>) creates a copy, specific to that invocation, of the formal parameters and local variables of the method, and the argument list of the invocation assigns values or variable references to the newly created formal parameters.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P6S2"></a>Within the block of a method, formal parameters can be referenced by their identifiers in <span class="non-terminal"><a href="14.5.2.htm#simple-name">simple-name</a></span> expressions (<a href="14.5.2.htm">§14.5.2</a>).</span> </span><span class="locator">
Paragraph 7</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P7S1"></a>There are four kinds of formal parameters: </span><ul><li><span class="sentence"><span class="sentence-number">2</span> <a name="P7S2"></a> Value parameters, which are declared without any modifiers.</span> </li><li><span class="sentence"><span class="sentence-number">3</span> <a name="P7S3"></a> Reference parameters, which are declared with the ref modifier.</span> </li><li><span class="sentence"><span class="sentence-number">4</span> <a name="P7S4"></a> Output parameters, which are declared with the out modifier.</span> </li><li><span class="sentence"><span class="sentence-number">5</span> <a name="P7S5"></a> Parameter arrays, which are declared with the params modifier.</span> </li></ul></span><span class="paragraph"><span class="note">[Note: As described in <a href="10.6.htm">§10.6</a>, the ref and out modifiers are part of a method's signature, but the params modifier is not. 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 + =
减小字号Ctrl + -
显示快捷键?