注釋方式:// 注釋在這裡
和/* 注釋在這裡 */
整形變量的類型:
浮點型:
其他簡單類型:
關於變量命名:
對於簡單的變量可以采用camelCase格式,如:firstName,對於一些高級的變量可以采用PascalCase格式,如LastName,這是微軟建議的。
字面常量:
true, false, 100, 100U, 100L, 100UL, 1.5F, 1.5, 1.5M, 'a', "hello"
verbatim, 逐字的常量:
"C:\\Temp\\mydir\\myfile.doc"
等同於@"C:\Temp\mydir\myfile.doc"
,另外可以跨行輸入字符串,如:
@"first line
second line
third line"
關於變量的使用,在很多變成語言中都有一個要求,就是在使用前必須進行初始化。
操作符與C語言類似
操作符的順序:
允許使用goto語句。條件表達式返回的類型必須是bool
。如: if (10) return false; // 這句話是不能通過編譯的
在使用switch-case的時候,有一點和c++的用法是不同的,如:
switch(testVar) { case var1: // execute code ... // 如果這裡沒有break語句的話,編譯器是不能通過的,而在c++中可以, // 如果想要讓它繼續執行下面的case,必須加上“goto case var2;”語句 // 當然如果case var1下面沒有執行語句的話,也是合理的 case var2: // execute code ... break; default: break; }
循環語句和C++類似
除了以上的隱式轉換之外,還存在顯示轉換。為了防止溢出發生,可以用checked(expression)
表達式進行處理,如:
byte destVar; short srcVar = 281; destVar = checked((byte)srcVar);
或是在項目的選項中,直接開啟默認轉換檢測機制。如下圖所示:
定義一個enum,如下:
enum orientation : byte // byte能夠被其他的整型類型,如int,long等替換 { north, south, east, west }
那麼聲明一個枚舉類型采用的方法為:orientation myDirect = orientation.north;
;直接輸出myDirect的結果為:north
。想要輸出它所表示的byte類型的具體數值,就必須采用顯示的類型轉換:(byte)myDirect
。
也可以將“north”字符串轉換成枚舉類型,采用的方式稍微復雜,具體如下:
string myStr = "north";
orientation myDirect = (orientation)Enum.Parse(typeof(orientation), myStr);
struct類型和C++不同的是,變量的類型默認不是public的。而是private的。
數組的聲明方式如下:<baseType>[] <name>;
,如:int[] myIntArray = {1,2,3};
,int[] myIntArray = new int[5];
。不能夠采用如下的方式進行聲明:<baseType> <name>[];
多維數組的語法結構也有其特殊性。聲明方式如下:<baseType>[,] <name>;
,如:double[,] hillHeight = new double[3,4];
。在多維數組中各個數據的排序順序為行優先排序,如:
double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}}; foreach (double height in hillHeight) { Console.WriteLine("{0}", height); } // 輸出結果依次為: // [0,0] // [0,1] // ...
在當每一行的數據量不相等的時候,可以使用Arrays of Arrays。在使用數組的數組的時候,不能像多維數組一樣進行使用,如:
int[][] jagged; jagged = new int[3][4]; // 在編譯的過程中會出現’cannot implicitly convert type 'int' to 'int[][]'的錯誤
有兩種方式可以用來實現聲明。如:
jagged = new int[2][]; jagged[0] = new int[3]; jagged[1] = new int[4]; // or like below jagged = {new int[] {1,2,3}, new int[] {1}, new int[] {4,5,6,7}};
在對其進行遍歷的時候也需要注意,不能采用如下的方式:
foreach (int val in jagged) // 出現編譯錯誤,不能將int[]轉換成int { Console.WriteLine(val); } // 於是應該更改為如下方式: foreach (int[] valArray in jagged) { foreach (int val in valArray) { Console.WriteLine(val); } }
string str=" hello world ";
常見的有: str.Trim();
,str.TrimStart()
,str.TrimEnd()
,str.ToLower()
,str.PadLeft(10, '-')
,str.Split({' '})
public static void printReverse(string str, int i) { if (i < str.Length) { printReverse(str, i + 1); Console.Write(str.Substring(i, 1)); } return; }
你要注意函數調用是傳值的,所以盡管你在input裡修改了a,b,c的值,主程序裡的a,b,c是不會變的。建議修改方法為以下兩種:
1: a,b,c改為全局變量
2: input改為void input(float* a,float* b,float* c),調用時用input(&a,&b,&c);
貌似外國人寫的教科書比中國人寫的好懂,而且書中還會出現“如果你看完本章沒有完全掌握,不必驚慌”這種話,實在是非常 friendly。每一節的例子安排得特別好,針對......