新聞中心
C#運算符重載“>”的操作問題的出現(xiàn):今天一個同學(xué)在做ProjectHoshimi的時候,自己在封裝一個對象庫。

創(chuàng)新互聯(lián)建站是專業(yè)的武昌網(wǎng)站建設(shè)公司,武昌接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行武昌網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
希望使用C#運算符重載>的操作,語法正確,但是總是不能成功。
按照MSDN C# Keyword opeartor定義可以有下面的語法構(gòu)成
- public static result-type operator unary-operator ( op-type operand )
- public static result-type operator binary-operator (
- op-type operand,
- op-type2 operand2
- )
- public static implicit operator conv-type-out ( conv-type-in operand
- )
- public static explicit operator conv-type-out (
- conv-type-in operand
- )
那么下面代碼就是正確的
- class A {
- private int a;
- public static bool operator>(A a,A b){
- return a.a > b.a;
- }
- public A(int value) {
- a = value;
- }
- }
C#運算符重載“>”的操作問題再次提出:為什么不能成功編譯呢?因為>運算符在.NET Framework中不允許但對出現(xiàn),如下代碼就是正確的。
- class A {
- private int a;
- public static bool operator>(A a,A b){
- return a.a > b.a;
- }
- public static bool operator <(A a, A b) {
- return a.a < b.a;
- }
- public A(int value) {
- a = value;
- }
為什么需要這樣做呢?
其實我覺得這個就是C#在設(shè)計上面默認了一些讓系統(tǒng)編碼更安全的一些約束。如果沒有這樣的約束,那么可能是>重載了,但是<沒有重載,但是如果有人使用將會發(fā)現(xiàn)很未知的錯誤。
C#運算符重載“>”的操作的基本情況就向你介紹到這里,希望對你了解C#運算符重載“>”的操作有所幫助。
分享文章:C#運算符重載“>”的操作淺析
當(dāng)前鏈接:http://m.5511xx.com/article/coiddph.html


咨詢
建站咨詢
