<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 可重載運算符(C# 編程指南) C# 通過使用 [operator](https://msdn.microsoft.com/zh-CN/library/s53ehcz3.aspx) 關鍵字定義靜態成員函數,來允許用戶定義的類型重載運算符。不過并非所有運算符都可以進行重載,并且其他運算符具有限制,如下表所列: | 運算符 | 可重載性 | | --- | --- | | [+](https://msdn.microsoft.com/zh-CN/library/k1a63xkz.aspx)、[-](https://msdn.microsoft.com/zh-CN/library/wch5w409.aspx)、[!](https://msdn.microsoft.com/zh-CN/library/f2kd6eb2.aspx)、[~](https://msdn.microsoft.com/zh-CN/library/d2bd4x66.aspx)、[++](https://msdn.microsoft.com/zh-CN/library/36x43w8w.aspx)、[--](https://msdn.microsoft.com/zh-CN/library/wc3z3k8c.aspx)、[true](https://msdn.microsoft.com/zh-CN/library/eahhcxk2.aspx)、[false](https://msdn.microsoft.com/zh-CN/library/67bxt5ee.aspx) | 這些一元運算符可以進行重載。 | | [+](https://msdn.microsoft.com/zh-CN/library/k1a63xkz.aspx), [-](https://msdn.microsoft.com/zh-CN/library/wch5w409.aspx), [*](https://msdn.microsoft.com/zh-CN/library/z19tbbca.aspx), [/](https://msdn.microsoft.com/zh-CN/library/3b1ff23f.aspx), [%](https://msdn.microsoft.com/zh-CN/library/0w4e0fzs.aspx), [&](https://msdn.microsoft.com/zh-CN/library/sbf85k1c.aspx),[&#124;](https://msdn.microsoft.com/zh-CN/library/kxszd0kx.aspx), [^](https://msdn.microsoft.com/zh-CN/library/zkacc7k1.aspx), [&lt;&lt;](https://msdn.microsoft.com/zh-CN/library/a1sway8w.aspx), [&gt;&gt;](https://msdn.microsoft.com/zh-CN/library/xt18et0d.aspx) | 這些二元運算符可以進行重載。 | | [==](https://msdn.microsoft.com/zh-CN/library/53k8ybth.aspx), [!=](https://msdn.microsoft.com/zh-CN/library/3tz250sf.aspx), [&lt;](https://msdn.microsoft.com/zh-CN/library/z5wecxwa.aspx), [&gt;](https://msdn.microsoft.com/zh-CN/library/yxk8751b.aspx), [&lt;=](https://msdn.microsoft.com/zh-CN/library/hx063734.aspx), [&gt;=](https://msdn.microsoft.com/zh-CN/library/a59bsyk4.aspx) | 比較運算符可以進行重載(但是請參閱此表后面的備注)。 | | [&&](https://msdn.microsoft.com/zh-CN/library/2a723cdk.aspx), [&#124;&#124;](https://msdn.microsoft.com/zh-CN/library/6373h346.aspx) | 條件邏輯運算符無法進行重載,但是它們使用 **&** 和 **&#124;**(可以進行重載)來計算。 | | [[]](https://msdn.microsoft.com/zh-CN/library/a3hd7ste.aspx) | 數組索引運算符無法進行重載,但是可以定義索引器。 | | [(T)x](https://msdn.microsoft.com/zh-CN/library/0z4503sa.aspx) | 強制轉換運算符無法進行重載,但是可以定義新轉換運算符(請參閱 [explicit](https://msdn.microsoft.com/zh-CN/library/xhbhezf4.aspx) 和 [implicit](https://msdn.microsoft.com/zh-CN/library/z5z9kes2.aspx))。 | | [+=](https://msdn.microsoft.com/zh-CN/library/sa7629ew.aspx), [-=](https://msdn.microsoft.com/zh-CN/library/2y9zhhx1.aspx), [*=](https://msdn.microsoft.com/zh-CN/library/s2bkaksf.aspx), [/=](https://msdn.microsoft.com/zh-CN/library/d31sybc9.aspx), [%=](https://msdn.microsoft.com/zh-CN/library/ydwa9zh0.aspx), [&=](https://msdn.microsoft.com/zh-CN/library/e669ax02.aspx), [&#124;=](https://msdn.microsoft.com/zh-CN/library/h5f1zzaw.aspx), [^=](https://msdn.microsoft.com/zh-CN/library/0zbsw2z6.aspx), [&lt;&lt;=](https://msdn.microsoft.com/zh-CN/library/ayt2kcfb.aspx), [&gt;&gt;=](https://msdn.microsoft.com/zh-CN/library/23as4533.aspx) | 賦值運算符無法進行重載,但是 **+=**(舉例)使用 **+**(可以進行重載)來計算。 | | [=](https://msdn.microsoft.com/zh-CN/library/sbkb459w.aspx)、[.](https://msdn.microsoft.com/zh-CN/library/6zhxzbds.aspx)、[?:](https://msdn.microsoft.com/zh-CN/library/ty67wk28.aspx)、[??](https://msdn.microsoft.com/zh-CN/library/ms173224.aspx)、[-&gt;](https://msdn.microsoft.com/zh-CN/library/s8bz4d5h.aspx)、[=&gt;](https://msdn.microsoft.com/zh-CN/library/bb311046.aspx)、[f(x)](https://msdn.microsoft.com/zh-CN/library/0z4503sa.aspx)、[as](https://msdn.microsoft.com/zh-CN/library/cscsdfbt.aspx)、[checked](https://msdn.microsoft.com/zh-CN/library/74b4xzyw.aspx)、[unchecked](https://msdn.microsoft.com/zh-CN/library/a569z7k8.aspx)、[default](https://msdn.microsoft.com/zh-CN/library/xwth0h0d.aspx)、[delegate](https://msdn.microsoft.com/zh-CN/library/0yw3tz5k.aspx)、[is](https://msdn.microsoft.com/zh-CN/library/scekt9xw.aspx)、[new](https://msdn.microsoft.com/zh-CN/library/51y09td4.aspx)、[sizeof](https://msdn.microsoft.com/zh-CN/library/eahchzkf.aspx)、[typeof](https://msdn.microsoft.com/zh-CN/library/58918ffs.aspx) | 這些運算符無法進行重載。 | | ![](https://box.kancloud.cn/2016-01-31_56adb62c1380a.jpg) 注意 | | :-- | | 如果進行重載,則比較運算符必須成對進行重載;也就是說,如果 **==** 進行重載,則 **!=** 也必須進行重載。反之亦然,對于 **&lt;** 和 **&gt;** 以及 **&lt;=** 和 **&gt;=** 也是類似情況。 | 若要在自定義類上重載運算符,需要在該類上創建具有正確簽名的方法。該方法必須命名為“運算符 X”,其中 X 是重載的運算符的名稱或符號。一元運算符具有一個參數,二元運算符具有兩個參數。在每種情況下,都必須有一個參數與聲明運算符的類或結構的類型相同。 ``` public static Complex operator +(Complex c1, Complex c2) { Return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary); } ``` 直接只返回表達式結果的定義很常見。對于這些情況,有一種使用 **=&gt;** 的語法快捷方式。 ``` public static Complex operator +(Complex c1, Complex c2) => new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary); // Override ToString() to display a complex number // in the traditional format: public override string ToString() => $"{this.real} + {this.imaginary}"; ``` 有關詳細新,請參閱[如何:使用運算符重載創建復數類(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/6fbs5e2h.aspx)。 ## 請參閱 [C# 編程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [語句、表達式和運算符(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173142.aspx) [運算符(C# 編程指南)](https://msdn.microsoft.com/zh-CN/library/ms173145.aspx) [C# 運算符](https://msdn.microsoft.com/zh-CN/library/6a71f45d.aspx) [重載的運算符為何在 C# 中始終為靜態?](http://go.microsoft.com/fwlink/?LinkId=112383)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看