通常我們需要對class的相加,相減,相乘 等過載以適應需求, 如caml查詢的時候,我們可以定義乙個caml類,然後來操作這些查詢.
首先,我們定義乙個class為test
public class test
然後定義兩個成員,乙個int型別的id,乙個字串型別的name.
public int id;
public string name;
然後定義建構函式
public test()
public test(int id)
public test(int id, string name)
過載兩個class相加的運算子,
public static test operator +(test t1, test t2)
else
}過載兩個class的|運算,其他的運算子如(-,*,/,&)大家可以自己去試試.
public static test operator |(test t1, test t2)
下面寫了乙個對test這個class的擴充套件方法,相等於這個class自帶的成員方法. 擴充套件返回發的寫法關鍵是this 後面帶型別和引數
internal static class util
if (!string.isnullorempty(t.name))
return sb.tostring();
}}
呼叫這個方法:
class program
} 執行結果如下:
C 過載運算子
運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...
C 過載運算子
本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...
C 過載運算子
過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。如果我們定義的函式為類的成員函式 box operator const box 如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個...