📄 10.5.3.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="10.5.2.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="10.5.4.htm"><img src="next.gif" alt="next" border="0" /></a></span><span class="clause-depth"><a href="9.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="11.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="10.htm">10</a></span><span class="clause-title-previous"> Basic concepts</span></span><span class="clause-depth"><a href="10.4.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="10.6.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="10.5.htm">10.5</a></span><span class="clause-title-previous"> Member access</span></span><span class="clause-depth"><a href="10.5.2.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="10.5.4.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">10.5.3</span><span class="clause-title"> Protected access for instance 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>When a protected instance member is accessed outside the program text of the class in which it is declared, and when a protected internal instance member is accessed outside the program text of the program in which it is declared, the access is required to take place through an instance of the derived class type in which the access occurs.</span> <span class="sentence"><span class="sentence-number">2</span> <a name="P1S2"></a>Let B be a base class that declares a protected instance member M, and let D be a class that derives from B.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P1S3"></a>Within the <span class="non-terminal"><a href="17.1.3.htm#class-body">class-body</a></span> of D, access to M can take one of the following forms: </span><ul><li><span class="sentence"><span class="sentence-number">4</span> <a name="P1S4"></a> An unqualified <span class="non-terminal"><a href="10.8.htm#type-name">type-name</a></span> or <span class="non-terminal"><a href="14.5.htm#primary-expression">primary-expression</a></span> of the form M.</span> </li><li><span class="sentence"><span class="sentence-number">5</span> <a name="P1S5"></a> A <span class="non-terminal"><a href="14.5.htm#primary-expression">primary-expression</a></span> of the form E.M, provided the type of E is D or a class derived from D.</span> </li><li><span class="sentence"><span class="sentence-number">6</span> <a name="P1S6"></a> A <span class="non-terminal"><a href="14.5.htm#primary-expression">primary-expression</a></span> of the form base.M.</span> </li></ul></span><span class="locator">
Paragraph 2</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P2S1"></a>In addition to these forms of access, a derived class can access a protected instance constructor of a base class in a <span class="non-terminal"><a href="17.10.htm#constructor-initializer">constructor-initializer</a></span> (<a href="17.10.1.htm">§17.10.1</a>).</span> </span><span class="paragraph"><span class="example">[Example: In the example <pre class="code-example">
public class A
{
protected int x;
static void F(A a, B b) {
a.x = 1; // Ok
b.x = 1; // Ok
}
}
public class B: A
{
static void F(A a, B b) {
a.x = 1; // Error, must access through instance of B
b.x = 1; // Ok
}
}
</pre>within A, it is possible to access x through instances of both A and B, since in either case the access takes place through an instance of A or a class derived from A. However, within B, it is not possible to access x through an instance of A, since A does not derive from B. end example]</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 + -