漸漸感覺,學一種知識,腳踏實地,一步一步是多麼重要。
以前習慣一看幾十頁,以爲學了很多,很有成就感,在要用的時候,會想起來看過,可具體怎麼用,又得去搜索查找。
驗證了那句:貪多嚼不爛。
所以,現在決定慢慢學,也溫故而知新,多做一些記錄。
C#中的變量:
C#編譯器需要用某個初始值對變更進行初始化,之後才能在操作中引用該變量。大多數現代編譯器把沒有初始化的變量標記有警告,而C#編譯器把此當錯誤看待。
C#有兩個方法確保變量在作用前進行了初始化:
(1)變量是類或結構中的字段,如果沒有顯式初始化,創建這些變量時,其值就默認是0.
(2)方法的局部變量必須在代碼中顯式初始化,之後才能在語句中使用它們的值。
類型推斷:
類型推斷爲var關鍵字(C#區分大小寫),被聲明的變量必須初始化。聲明瞭變量,推斷出變量類型後,變量的類型就不能再更改了。
int i=0;
可以寫成:
var i=0;
變量的作用域:
public static void Main()
{
int j=20;
for(int i=0;i<10;i++)
{
int j=30;
Console.WriteLine(j+i);
}
return 0;
}
這段代碼編譯會出錯。j在循環外定義,在整個Main方法內有效。而第二個j在作用域在循環範圍內,C#無法區別這兩個變量,所以不允許聲明第二個變量,這是與C++不同的地方。C++中允許隱藏變量 。
值類型和引用類型:
值類型存儲在堆棧中,而引用類型存儲在託管堆上。
把基本類型(如int )規定爲值類型,而把包含許多字段的較大類型規定爲引用類型,C#的這種設計方式原因是可以得到最佳的性能。如果要把自己的類型定義爲值類型,就應把它定義爲一個結構。