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

📄 14.3.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.2.6.2.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="14.3.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.2.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="14.4.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">14.3</span><span class="clause-title"> Member lookup</span></span><span class="locator">
     Paragraph 1</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P1S1"></a>A member lookup is the process whereby the meaning of a name in the context of a type is determined.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P1S2"></a>A member lookup may occur as part of evaluating a <span class="non-terminal"><a href="14.5.2.htm#simple-name">simple-name</a></span> (<a href="14.5.2.htm">&#167;14.5.2</a>) or a <span class="non-terminal"><a href="14.5.4.htm#member-access">member-access</a></span> (<a href="14.5.4.htm">&#167;14.5.4</a>) in an expression.</span> </span><span class="locator">
     Paragraph 2</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P2S1"></a>A member lookup of a name N in a type T is processed as follows: </span><ul><li><span class="sentence"><span class="sentence-number">2</span> <a name="P2S2"></a> First, the set of all accessible (<a href="10.5.htm">&#167;10.5</a>) members named N declared in T and the base types (<a href="14.3.1.htm">&#167;14.3.1</a>) of T is constructed.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P2S3"></a>Declarations that include an override modifier are excluded from the set.</span> <span class="sentence"><span class="sentence-number">4</span> <a name="P2S4"></a>If no members named N exist and are accessible, then the lookup produces no match, and the following steps are not evaluated.</span> </li><li><span class="sentence"><span class="sentence-number">5</span> <a name="P2S5"></a> Next, members that are hidden by other members are removed from the set.</span> <span class="sentence"><span class="sentence-number">6</span> <a name="P2S6"></a>For every member S.M in the set, where S is the type in which the member M is declared, the following rules are applied: </span></li><ul><li><span class="sentence"><span class="sentence-number">7</span> <a name="P2S7"></a> If M is a constant, field, property, event, type, or enumeration member, then all members declared in a base type of S are removed from the set.</span> </li><li><span class="sentence"><span class="sentence-number">8</span> <a name="P2S8"></a> If M is a method, then all non-method members declared in a base type of S are removed from the set, and all methods with the same signature as M declared in a base type of S are removed from the set.</span> </li></ul><li><span class="sentence"><span class="sentence-number">9</span> <a name="P2S9"></a> Finally, having removed hidden members, the result of the lookup is determined: </span></li><ul><li><span class="sentence"><span class="sentence-number">10</span> <a name="P2S10"></a> If the set consists of a single non-method member, then this member is the result of the lookup.</span> </li><li><span class="sentence"><span class="sentence-number">11</span> <a name="P2S11"></a> Otherwise, if the set contains only methods, then this group of methods is the result of the lookup.</span> </li><li><span class="sentence"><span class="sentence-number">12</span> <a name="P2S12"></a> Otherwise, the lookup is ambiguous, and a compile-time error occurs (this situation can only occur for a member lookup in an interface that has multiple direct base interfaces).</span> </li></ul></ul></span><span class="locator">
     Paragraph 3</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P3S1"></a>For member lookups in types other than interfaces, and member lookups in interfaces that are strictly  single-inheritance (each interface in the inheritance chain has exactly zero or one direct base interface), the effect of the lookup rules is simply that derived members hide base members with the same name or signature.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P3S2"></a>Such single-inheritance lookups are never ambiguous.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P3S3"></a>The ambiguities that can possibly arise from member lookups in multiple-inheritance interfaces are described in <a href="20.2.5.htm">&#167;20.2.5</a>.</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 + -