操作符和控制流

2021-07-06 05:32:49 字數 826 閱讀 2142

在c#中,操作符總是從左向右取值,a()+b()*c(),先計算a()再計算b()再計算c()

trace.assert('a' != 'a');弱結果為false會彈出乙個斷言失敗對話方塊

int decimal等資料型別除以零會出錯,但float和double輸出nan,負數平方根也是nan

float的上邊界3.4*10^38,溢位上邊界就會儲存為正無窮大infinity,下邊界為-3.4*10^38,溢位這個邊界就會得到負無窮大-infinity

常量表示式是c#編譯器在編譯時完成求值的表示式(而不是在程式執行時才能求值),const宣告

條件操作符(三元操作符)要求?和:後面的表示式型別一致,在判斷型別時不會檢查表示式的上下文,object = f?;"abc":123,會報錯。

c#2.0引入空結合操作符,x??y如果x為null就返回y,可以「鏈結」x??y??z返回第乙個不為null的值,否則返回z

foreach語句,不允許修改item的值,為唯讀屬性。

c#要求switch小節(包括最後乙個節點)的結束點「不可到達」,這意味著switch通常以break,return,goto結尾。如果希望switch小節執行另乙個switch小節的語句,用goto語句。

c#預處理指令:

#if-#endif 

#if-#elif-#endif

#if-#else-#endif

#define

#undef

#error

#warning

#parama

#line

#line default

#region-#endregion

如何過載流操作符

為自己的類定義插入符和提取符,就是過載相關運算子 第乙個引數定義成流的非const引用 執行插入或提取的操作 返回流的引用 流應該為非常量,因為處理資料將改變流的狀態.通過返回流,可以將多個流操作連線成一條語句.考慮輸出mm dd yyyy格式的date物件 ostream operator ost...

前置操作符和後置操作符

操作符可以被過載 全域性函式和成員函式均可以進行過載 過載前置 操作符不需要額外的引數 過載後置 操作符需要乙個int型別的佔位引數 來看乙個例子 include include using namespace std class test intvalue test operator test o...

關係操作符和邏輯操作符

關係操作符和邏輯操作符使用算術或指標型別的運算元,並返回bool 型別的值。操作符功能用法 logical not 邏輯非 expr less than 小於 expr expr less than or equal 小於等於 expr expr greater than 大於 expr expr ...