C 語法之比較

2021-07-06 08:40:21 字數 2349 閱讀 1675

本次將以如下順次介紹c#中的比較

1.型別比較

2.值比較

2.1.運算子過載

2.2.icomparable和icomparer介面的實現

2.3.型別轉換

1.型別比較

有2種方式進行型別比較:gettype  和 is

ctypetst l_typeclass = new ctypetst();

/*型別比較*/

/*gettype, typeof*/

if (l_typeclass.gettype() == typeof(ctypetst))

",l_typeclass.gettype());

}/*is*/

if (l_typeclass is itypetst)

", typeof(itypetst));

}

我的理解是:

gettype 是得到並判斷物件的最頂層型別,

而is可以判斷物件最頂層到最底層之間的任意型別

2.值比較

2.1.運算子過載

運算子過載的基本結構如下:

public static cyourtype  operator  op ()

class coperatortst

set}

/*過載+運算子*/

public static coperatortst operator + (coperatortst i_obj_1, coperatortst i_obj_2)

/*過載-運算子*/

public static coperatortst operator - (coperatortst i_obj_1, coperatortst i_obj_2)

}

2.2.icomparable和icomparer介面的實現

實現這兩個介面主要是用於排序

其中icomparable要實現:

int compareto(object obj);

而icomparer要實現:

int compare(object x, object y);

/*實現icomparable介面*/

class cmycomparable:icomparable

set}

/*構造*/

public cmycomparable(int i_val)

/*實現compareto*/

public int compareto(object obj)

else

}}

class cmycompareor:icomparer

else

}}

arraylist l_list = new arraylist();

/*icomparable*/

l_list.add(new cmycomparable(10));

l_list.add(new cmycomparable(8));

l_list.add(new cmycomparable(11));

l_list.add(new cmycomparable(9));

/*before sort*/

foreach(object l_obj in l_list)

", l_comp.m_value);

}console.writeline();

l_list.sort();

/*after sort*/

foreach (object l_obj in l_list)

", l_comp.m_value);

}console.writeline();

l_list.sort(cmycompareor.s_comparer);

/*after outer sort*/

foreach (object l_obj in l_list)

", l_comp.m_value);

}

2.3.型別轉換

型別轉換包括顯式轉換和隱式轉換,如果要自定義顯式和隱式轉換,則需要過載如下操作符:

public static implicit operator cexplicittst(cimplicittst i_obj);

public static explicit operator cimplicittst(cexplicittst i_obj);

另一是 as

與is的區別在於, is 操作返回的是 true和false

而 as 返回的是引用或null

C 與C之比較

1.函式原型宣告中都可以省略引數名稱,只保留型別名稱 2.空引數和可變引數 fuc c 中表示沒有引數 c語言中表示引數不確定,表示沒有引數是 func void 可變引數 二者一樣 int func int a,引數的型別與個數都不確定 3.返回值 c中宣告函式可以不寫返回值型別,預設為int m...

Linux shell 之比較判斷

整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於 需要雙括號 如 a b 小於等於 需要雙括號 如 a b ...

Python和PHP之比較

偶爾做個簡單的web服務測試程式,我還是喜歡採用php。簡潔,風格和c c 接近,上手快,而且庫也很齊全。以前為廣東移動做移動行業終端的演示程式時,採用國內乙個兄弟寫的fleaphp開源框架,兩周不到的時間,我從乙個對php一無所知的水平,快速的搞定了30多個頁面的後台,後來演示效果也不錯,也很穩定...