本次將以如下順次介紹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多個頁面的後台,後來演示效果也不錯,也很穩定...