一周學會
c#(值的型別二)
4.連線
·規則1
w除了賦值操作符外的其他二元操作符都是左連線的。
x+y+z
應理解為
(x+y)+z
·規則2
w賦值操作符和?:操作符是右連線的。
x=y=z
應理解為x=(y=z)
x+=y+=z
應理解為x+=(y+=z)
a?b:c?d:e
應理解為a?b:(c?d:e)
5.計算時的順序
·運算元是嚴格地從左到右被計算的。
int m = 2;
int answer = ++m * ++m + ++m * ++m;
計算的順序:
3 * ++m + ++m * ++m
3 * 4 + ++m * ++m
12 + ++m * ++m
12 + 5 * ++m
12 + 5 * 6
12 + 30
42
6.整數溢位
·溢位錯誤
wun/checked (表示式)
wun/checked{語句}
intm =...
method(checked(m * 2));
m =checked(m * 2);
checked
以上的每一句語句都進行溢位錯誤檢查
method(m * 2);
m *= 2;
以上的每一句語句在用csc /checked+ *.cs編譯時,進行溢位錯誤檢查
以上的每一句語句在用csc /checked- *.cs編譯時,不進行溢位錯誤檢查
method(unchecked(m * 2));
m =unchecked(m * 2);
unchecked
以上的每一句語句都不進行溢位錯誤檢查
checked(表示式)檢查乙個表示式的結果是否溢位。它可以用於任何乙個表示式,但只只能對整數操作符起作用,因為只有這些操作符才產生溢位。這些操作符是:++, --, -(負號),+ -(減號),* ,/ ,%以及整型之間的顯式型別轉換符。checked(表示式)的結果也是乙個表示式,它可以被用來作為另乙個表示式的一部分:
int outcome = checked( ... );
checked檢查一系列的語句結果是否溢位。它不是乙個表示式,沒有結果。例如,下面有語句會產生錯誤:
int nooutcome = checked ;
(注意:checked(表示式)的括號是園括號,而checked的括號是花括號)。
unchecked是不檢查是否溢位。
一周學會C (類二)
一周學會 c 類二 5.例項字段 例項字段.w在所有的建構函式中被初始化為預設值 0 false null w可以在一建構函式中顯式初始化 w可以在它們宣告時初始化 sealed class pair private int x private int y 42 回憶一下 在結構的自定義建構函式必須...
一周學會C (屬性一)
一周學會 c 屬性一 1.問題 struct time public void sethour int value private int hour,minute,second static void main 封裝把一些不重要的細節隱藏起來,這樣你可以集中精力處理那些重要的內容。但封裝很難被掌握,...
一周學會C (列舉一)
一周學會 c 列舉一 1.型別 值型別 w變數直接包含它們自己的資料 w區域性變數總是放在棧 stack 中 引用型別 w變數間接指向它們的資料 w區域性變數指向堆 heap 中的物件 列舉 enum 值型別 結構 struct 值型別 類 class 引用型別 介面 inte ce 引用型別 陣列...