C 中判斷兩個型別是否能夠匹配

2021-05-22 01:57:24 字數 690 閱讀 2364

經常因為繼承、實現的原因,c#中要對兩種型別進行比較,判斷他們是否能夠匹配上,是否是同一種型別,或者是父子關係等等。

c#中來判斷兩種型別/物件是否相等、匹配,可以使用的方法有:as, is, typeof, type. gettype_r(),type.

isassignablefrom(),type.getinte***ce_r()

具體的使用方法如下:

string s = someobject as string; if (s != null)
as運算子類似於強制轉換操作;但是,如果轉換不可行,as會返回null而不是引發異常。更嚴格地說,這種形式的表示式
expression as type 等效於
expression is type ? (type)expression : (type)null

只是 expression 只被計算一次。

注意,as運算子只執行引用轉換和裝箱轉換。as運算子無法執行其他轉換,如使用者定義的轉換,這類轉換應使用 cast 表示式來執行。

static void test(object o)

class1 a;

class2 b;

JS判斷兩個數 包含小數 是否能夠整除

js判斷兩個整數 a,b,a b 的整除時,可以用number.isinteger a b 或者a b 0來進行判斷,但是如果其中涉及到小數就會導致計算過程中精度丟失.最簡單的精度丟失例子,如0.1 0.2 0.3 false 相同的道理,a b 0判斷並不可取,如11 1.1 1.09999999...

Java中判斷兩個float型別資料是否相等

相減,然後判斷這個差是否小於某個值,這個值是你自己定義的,比如0.000001什麼的,如果小於就相等,否則不等。從網上看到的例子 public class comparefloat public static void isequaloffloat float a,float b 執行結果 floa...

Java中判斷兩個Long型別是否相等

開發中有遇到long型別比較是否相等,比如long a和long b判斷是否相等,當時習慣性的直接a b 執行時a等於b,但一直判斷不相等。換成了a.equals b 或a.longvalue b.longvalue 都是正確的 改完bug,覺得需要看看是為什麼,通過看long.class,可以看出...