c 的運算子

2022-02-04 10:54:20 字數 1655 閱讀 7343

c#的運算子和c的運算子的關係,是c包含於c#,因此c#有更多的運算子。

先來學習一下三個是c中沒用的:

1、typeof()    返回 class 的型別。                                typeof(streamreader);

2、is    判斷物件是否為某一型別。                              if( ford is car) // 檢查 ford 是否是 car 類的乙個物件。

3、as    強制轉換,即使轉換失敗也不會丟擲異常。    object obj = new stringreader("hello");

stringreader r = obj as stringreader;

例項

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

class class2 : class1 //類class2是類class1的子類

class rectangle

public double getarea()//乙個用來計算的方法

public void display()//乙個用來列印的方法

", length);

console.writeline("width: ", width);

console.writeline("area: ", getarea());//列印getarea方法的計算結果}}

class program

", sizeof(int));

console.writeline("short 的大小是 ", sizeof(short));

console.writeline("double 的大小是 ", sizeof(double));

/* 三元運算子的例項 */

int a, b;

a = 10;

b = (a == 1) ? 20 : 30;

console.writeline("b 的值是 ", b);

b = (a == 10) ? 20 : 30;

console.writeline("b 的值是 ", b);

if(b is int)

console.writeline("typeof(program)=", typeof(program));

console.writeline("typeof(rectangle)=", typeof(rectangle));

object rec = new rectangle();

rectangle r2 = rec as rectangle;

r2.acceptdetails();

r2.getarea();

r2.display();

console.readline();}}

}

當上面的**被編譯和執行時,它會產生下列結果:

c# 中的運算子優先順序

基本上和c類似,就是多了type如下所示:

一元     + - ! ~ ++ - - (type)* & sizeof     從右到左 

C 運算子過載賦值運算子

自定義類的賦值運算子過載函式的作用與內建賦值運算子的作用類似,但是要要注意的是,它與拷貝建構函式與析構函式一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定預設的賦值運算子過載函式,那麼系統將會自動提供乙個賦值運算子過載函式。賦值運算子過載函式的定義與其它運算子過載函式的定義是...

C 運算子過載轉換運算子

為什麼需要轉換運算子?大家知道對於內建型別的資料我們可以通過強制轉換符的使用來轉換資料,例如 int 2.1f 自定義類也是型別,那麼自定義類的物件在很多情況下也需要支援此操作,c 提供了轉換運算子過載函式 它使得自定義類物件的強轉換成為可能。轉換運算子的生命方式比較特別,方法如下 operator...

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...