C 的一些運算子

2021-05-11 12:03:44 字數 1544 閱讀 8308

參見《

c#高階程式設計》第四版

is 運算子可以檢查物件是否與特定的型別相容。」相容

」表示物件是該型別,或者派生於該型別。例如,要檢查變數是否與

object

型別相容

:int i = 10;

if (i is

object)

int和從

object

繼承而來的其他

c#資料型別一樣,表示式

i is object

將得到true,

並顯示資訊。 as

運算子用於執行引用型別的顯式型別轉換。如果要轉換的型別與指定的型別相容,轉換就會成功進行;如果型別不相容,

as運算子就會返回值

null

。如下面的**所示,如果

object

引用不指向

string

例項,把

object

引用轉換為

string

就會返回

null:

object o1 = "some string";

object o2 = 5;

string s1 = o1 as

string; // s1 = "some string"

string s2 = o2 as

string; // s2 = null

如果在程式中使用可空型別,就必須考慮

null

值在與各種運算子一起使用時的影響。通常可空型別與一元或二元運算子一起使用時,如果其中乙個運算元或兩個運算元都是

null

,其結果就是

null

。例如:

int? a = null;

int? b = a + 4; // b = null

int? c = a * 5; // c = null

但是在比較可空型別時,只要有乙個運算元是

null,

比較的結果就是

false

。例如:

int? a = null;

int b = -1;

if (a < b)

else

空接合運算子

(??)

為處理可空型別和引用型別時表示

null

值的可能性提供了一種快捷方式。這個運算子放在兩個運算元之間。第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下:如果第乙個運算元不是

null

,則整個表示式就等於第乙個運算元的值。但如果第乙個運算元是

null

,則整個表示式就等於第二個運算元的值。例如:

int? a = null;

int b;

b = a ?? 10; // b has the value 10

a = 3;

b = a ?? 10; // b has the value 3

如果第二個運算元不能隱含地轉換為第乙個運算元的型別,就生成乙個編譯錯誤。

一些運算子

int a 3 int b a 先把a的值賦給b,a再自增 int c a a先自增,再把值賦給c system.out.println a system.out.println b system.out.println c 結果輸出 535 冪運算,計算2 3 double pow math.po...

一些特殊運算子的理解

1 in eg x in o 檢測o物件是否擁有x屬性 in 運算子 in的左側是字串或者可以轉為字串 右側是物件 可以檢測繼承的屬性 注意的是對陣列檢測的是下標值 2 instanceof 左側是物件,右側是標識物件的類即建構函式 如果左側不是物件則返回false,右側不是函式則丟擲乙個型別錯誤異...

js的一些運算子知識

一.算數運算子 只要 兩邊有任何一邊是字串的時候,那麼就進行字串的鏈結 算數運算子有哪些呢?符號的用法 作為字首的時候先自增 自減在使用 作為字尾的時候先使用在自增 自減 優先順序 先 再 如果想提公升優先順序 使用 四捨五入解決誤差的方法 tofixed n n表示保留幾位小數 例如 var ch...