📄 14.2.4.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.3.htm"><img src="previous.gif" alt="previous" border="0" /></a><a href="14.2.5.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.1.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="14.3.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number-link"><a href="14.2.htm">14.2</a></span><span class="clause-title-previous"> Operators</span></span><span class="clause-depth"><a href="14.2.3.htm"><img src="previous.gif" alt="previous at this level" border="0" /></a><a href="14.2.5.htm"><img src="next.gif" alt="next at this level" border="0" /></a> <span class="clause-number">14.2.4</span><span class="clause-title"> Binary operator overload resolution</span></span><span class="locator">
Paragraph 1</span><span class="paragraph"><span class="sentence"><span class="sentence-number">1</span> <a name="P1S1"></a>An operation of the form x op y, where op is an overloadable binary operator, x is an expression of type X, and y is an expression of type Y, is processed as follows: </span><ul><li><span class="sentence"><span class="sentence-number">2</span> <a name="P1S2"></a> The set of candidate user-defined operators provided by X and Y for the operation operator op(x, y) is determined.</span> <span class="sentence"><span class="sentence-number">3</span> <a name="P1S3"></a>The set consists of the union of the candidate operators provided by X and the candidate operators provided by Y, each determined using the rules of <a href="14.2.5.htm">§14.2.5</a>.</span> <span class="sentence"><span class="sentence-number">4</span> <a name="P1S4"></a>If X and Y are the same type, or if X and Y are derived from a common base type, then shared candidate operators only occur in the combined set once.</span> </li><li><span class="sentence"><span class="sentence-number">5</span> <a name="P1S5"></a> If the set of candidate user-defined operators is not empty, then this becomes the set of candidate operators for the operation.</span> <span class="sentence"><span class="sentence-number">6</span> <a name="P1S6"></a>Otherwise, the predefined binary operator op implementations become the set of candidate operators for the operation.</span> <span class="sentence"><span class="sentence-number">7</span> <a name="P1S7"></a>The predefined implementations of a given operator are specified in the description of the operator (<a href="14.7.htm">§14.7</a> through <a href="14.13.htm">§14.13</a>).</span> </li><li><span class="sentence"><span class="sentence-number">8</span> <a name="P1S8"></a> The overload resolution rules of <a href="14.4.2.htm">§14.4.2</a> are applied to the set of candidate operators to select the best operator with respect to the argument list (x, y), and this operator becomes the result of the overload resolution process.</span> <span class="sentence"><span class="sentence-number">9</span> <a name="P1S9"></a>If overload resolution fails to select a single best operator, a compile-time error occurs.</span> </li></ul></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 + -