C#應該知道的簡單的知識點_PHP教程

來源:互聯網
上載者:User

C#應該知道的簡單的知識點


  1.本地變數

  一看這個標題你可能會一愣,這是個什麼東東。看個小例子:

  static void main()

  {

  int a=10;

  MyClass mc=new MyClass();

  }

  呵呵,這裡的a與mc就是本地變數,它和欄位一樣,也儲存資料。欄位通常儲存和對象狀態有關的資料,而建立本地變數經常用於儲存本地或臨時資料。呵呵,簡單吧,但是它和執行個體欄位有何區別:

  執行個體欄位

  本地變數

  生存期 從執行個體建立開始,直到執行個體不再被訪問

  從它在塊中被聲明開始,到塊執行結束

  隱式初始化 初始化成該類的預設值 沒有隱式初始化。如果變數在使用之前沒有被賦值,編譯器將報錯

  儲存地區 由於執行個體欄位是類的成員,所有的欄位都儲存在堆裡,無論它是指類型還是參考型別 實值型別:儲存在棧裡

  參考型別:引用儲存在棧裡,資料存放在堆裡

  2.var 關鍵字

  我們知道var可以自動推斷變數的類型,如上代碼,我們可以發現在聲明開始部分提供類型名時,編譯器能從初始化語句的右邊推斷出來它的類型,所以,在聲明的開始部分包括顯示的類型名多餘的。

  為了避免這種多餘,可以在聲明的開始部分的顯示類型名的位置使用新的關鍵字var。上面代碼可以改成:

  static void main()

  {

  var a=10;

  var mc=new MyClass();

  }

  3.值參數

  使用值參數,通過將實參的值複製到形參的方式把資料傳遞給方法。方法被調用時,系統做如下操作:

  在棧中為形參分配空間

  將實參的值複製給形參

  4.引用參數(ref)

  不會為形參在棧上分配記憶體

  實際情況是,形參的參數名將作為實參變數的別名,指向相同的記憶體位置

  實參必須是變數,在用作實參前必須被賦值。如果是參考型別變數,可以賦值一個引用或者null

  5.輸出參數(out)

  在方法內部,輸出參數在能夠使用之前必須被賦值。這就意味著參數的初始值是不起作用的,所以沒有必要在方法調用前為參數賦值。

  在方法返回之前,方法內部任何路徑都必須為所有輸出參數進行一次賦值。

  如下代碼:

  public void Add(out int outValue) { int var1=outValue+2; }上述代碼輸出參數在方法賦值之前被讀取將會報錯。

  6.屬性(set,get)

  屬性是一個函數成員

  它不為資料的儲存分配記憶體

  它可以執行代碼

  set訪問器擁有一個單獨的隱式的值參,名稱為Value,與屬性的類型相同且擁有一個傳回型別void

  get訪問器沒有參數,擁有一個與屬性類型相同的傳回型別。

  7.對象初始化語句

  我們都知道建立一個對象是由new 後面跟著一個類建構函式及其參數列表組成。

  對象初始化語句擴充了建立文法,在運算式的尾部放置了一群組成員初始化的語句。允許我們建立新的對象執行個體時,設定欄位和屬性的值。

  該文法有兩種形式:一種形式是包括建構函式的參數列表,另一種是不包括。注意第一種形式可以省略圓括弧。

  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

  樣本如下:

  public static void main()

  {

  Point p1=new Point();

  Point p2=new Point{X=4,Y=5,Z=6};

  Point p3=new Point(9){X=7,Y=8};

  }

  public class Point

  {

  public int X=1;

  public int Y=2;

  public int Z=3;

  public Point(int z) { Z=z; }

  }

  8.this關鍵字

  this關鍵字在類中使用,是對當前執行個體的引用。它只能用在下列類成員的代碼中

  執行個體建構函式

  執行個體方法

  屬性和索引器的執行個體訪問權

  由於靜態成員不是執行個體的一部分,所以不能在任何靜態函數成員的代碼中使用this關鍵字。更適當的說,this用於下列目的:

  用於區分類的成員和本地變數或參數

  做為調用方法的實參

http://www.bkjia.com/PHPjc/950334.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/950334.htmlTechArticleC#應該知道的簡單的知識點 1.本地變數 一看這個標題你可能會一愣,這是個什麼東東。看個小例子: static void main() { int a=10; MyClass mc=new M...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.