c 過載運算子 和擴充套件方法

2021-12-30 05:35:11 字數 843 閱讀 2789

通常我們需要對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 如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個...