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

📄 14.4.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="14.3.1.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="14.4.1.htm"><img src="next.gif" alt="next" border="0" /></a></span><span class="clause-depth"><a href="13.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="15.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="14.htm">14</a></span><span class="clause-title-previous"> Expressions</span></span><span class="clause-depth"><a href="14.3.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="14.5.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">14.4</span><span class="clause-title"> Function members</span></span><span class="locator">
     Paragraph 1</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P1S1"></a>Function members are members that contain executable statements.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P1S2"></a>Function members are always members of types and cannot be members of namespaces.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P1S3"></a>C# defines the following categories of function members: </span><ul><li><span class="sentence"><span class="sentence-number">4</span> <a name="P1S4"></a> Methods </span></li><li><span class="sentence"><span class="sentence-number">5</span> <a name="P1S5"></a> Properties </span></li><li><span class="sentence"><span class="sentence-number">6</span> <a name="P1S6"></a> Events </span></li><li><span class="sentence"><span class="sentence-number">7</span> <a name="P1S7"></a> Indexers </span></li><li><span class="sentence"><span class="sentence-number">8</span> <a name="P1S8"></a> User-defined operators </span></li><li><span class="sentence"><span class="sentence-number">9</span> <a name="P1S9"></a> Instance constructors </span></li><li><span class="sentence"><span class="sentence-number">10</span> <a name="P1S10"></a> Static constructors </span></li><li><span class="sentence"><span class="sentence-number">11</span> <a name="P1S11"></a> Destructors </span></li></ul></span><span class="paragraph"><span class="sentence"><span class="sentence-number">12</span> <a name="P1S12"></a>Except for static constructors and destructors (which cannot be invoked explicitly), the statements contained in function members are executed through function member invocations.</span> <span class="sentence"><span class="sentence-number">13</span> <a name="P1S13"></a>The actual syntax for writing a function member invocation depends on the particular function member category.</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 argument list (<a href="14.4.1.htm">&#167;14.4.1</a>) of a function member invocation provides actual values or variable references for the parameters of the function member.</span> </span><span class="locator">
     Paragraph 3</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P3S1"></a>Invocations of methods, indexers, operators, and instance constructors employ overload resolution to determine which of a candidate set of function members to invoke.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P3S2"></a>This process is described in <a href="14.4.2.htm">&#167;14.4.2</a>.</span> </span><span class="locator">
     Paragraph 4</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P4S1"></a>Once a particular function member has been identified at compile-time, possibly through overload resolution, the actual run-time process of invoking the function member is described in <a href="14.4.3.htm">&#167;14.4.3</a>.</span> </span><span class="paragraph"><span class="note">[Note: The following table summarizes the processing that takes place in constructs involving the six categories of function members that can be explicitly invoked. In the table, e, x, y, and value indicate expressions classified as variables or values, T indicates an expression classified as a type, F is the simple name of a method, and P is the simple name of a property. 
<table border="1">
<tr>
  <th>Construct</th>
  <th>Example&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
  <th>Description</th>
</tr>
<tr>
  <td rowspan="3" colspan="1">Method</br>invocation</td>
  <td>F(x,y)</td>
  <td>Overload resolution is applied to select the best method F in the
containing class or struct. The method is invoked with the
argument list (x, y). If the method is not static, the
instance expression is this.
  </td>
</tr>
<tr>
  <td>T.F(x,y)</td>
  <td>Overload resolution is applied to select the best method F in the
class or struct T. A compile-time error occurs if the method is
not static. The method is invoked with the argument list
(x, y).
  </td>
</tr>
<tr>
  <td>e.F(x,y)</td>
  <td>Overload resolution is applied to select the best method F in the
class, struct, or interface given by the type of e. A compile-time
error occurs if the method is static. The method is invoked
with the instance expression e and the argument list (x, y).
  </td>
</tr>

<tr>
  <td rowspan="6" colspan="1">Property</br>access</td>
  <td>P</td>
  <td>The get accessor of the property P in the containing class or
struct is invoked. A compile-time error occurs if P is writeonly.
If P is not static, the instance expression is this.
  </td>
</tr>
<tr>
  <td>P = value</td>
  <td>The set accessor of the property P in the containing class or
struct is invoked with the argument list (value). A compiletime
error occurs if P is read-only. If P is not static, the
instance expression is this.
  </td>
</tr>
<tr>
  <td>T.P</td>
  <td>The get accessor of the property P in the class or struct T is
invoked. A compile-time error occurs if P is not static or if P
is write-only.
  </td>
</tr>
<tr>
  <td>T.P = value</td>
  <td>The set accessor of the property P in the class or struct T is
invoked with the argument list (value). A compile-time error
occurs if P is not static or if P is read-only.
  </td>
</tr>
<tr>
  <td>e.P</td>
  <td>The get accessor of the property P in the class, struct, or
interface given by the type of e is invoked with the instance
expression e. A compile-time error occurs if P is static or if
P is write-only.
  </td>
</tr>
<tr>
  <td>e.P = value</td>
  <td>The set accessor of the property P in the class, struct, or
interface given by the type of e is invoked with the instance
expression e and the argument list (value). A compile-time
error occurs if P is static or if P is read-only.
  </td>
</tr>


<tr>
  <td rowspan="6" colspan="1">Event</br>access</td>
  <td>E += value</td>
  <td>The add accessor of the event E in the containing class or struct
is invoked. If E is not static, the instance expression is this.
  </td>
</tr>
<tr>
  <td>E -= value</td>
  <td>The remove accessor of the event E in the containing class or
struct is invoked. If E is not static, the instance expression is
this.
  </td>
</tr>
<tr>
  <td>T.E += value</td>
  <td>The add accessor of the event E in the class or struct T is
invoked. A compile-time error occurs if E is not static.
  </td>
</tr>
<tr>
  <td>T.E -= value</td>
  <td>The remove accessor of the event E in the class or struct T is
invoked. A compile-time error occurs if E is not static.
  </td>
</tr>
<tr>
  <td>e.E += value</td>
  <td>The add accessor of the event E in the class, struct, or interface
given by the type of e is invoked with the instance expression
e. A compile-time error occurs if E is static.
  </td>
</tr>
<tr>
  <td>e.E -= value</td>
  <td>The remove accessor of the event E in the class, struct, or
interface given by the type of e is invoked with the instance
expression e. A compile-time error occurs if E is static.
  </td>
</tr>


<tr>
  <td rowspan="2" colspan="1">Indexer</br>access</td>
  <td>e[x,y]</td>
  <td>Overload resolution is applied to select the best indexer in the
class, struct, or interface given by the type of e. The get
accessor of the indexer is invoked with the instance expression
e and the argument list (x, y). A compile-time error occurs if
the indexer is write-only.
  </td>
</tr>
<tr>
  <td>e[x,y] = value</td>
  <td>Overload resolution is applied to select the best indexer in the
class, struct, or interface given by the type of e. The set
accessor of the indexer is invoked with the instance expression
e and the argument list (x, y, value). A compile-time error
occurs if the indexer is read-only.
  </td>
</tr>

<tr>
  <td rowspan="2" colspan="1">Operator</br>invocation</td>
  <td>-x</td>
  <td>Overload resolution is applied to select the best unary operator
in the class or struct given by the type of x. The selected
operator is invoked with the argument list (x).
  </td>
</tr>
<tr>
  <td>x + y</td>
  <td>Overload resolution is applied to select the best binary operator
in the classes or structs given by the types of x and y. The
selected operator is invoked with the argument list (x, y).
  </td>
</tr>

<tr>
  <td rowspan="1" colspan="1">Instance</br>constructor</br>invocation</td>
  <td>new T(x,y)</td>
  <td>Overload resolution is applied to select the best instance
constructor in the class or struct T. The instance constructor is
invoked with the argument list (x, y).
  </td>
</tr>

</table>

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 + -