首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 銳利體驗 (二) (2):變數、常數、運算子與命名空間

     編輯:關於C語言

變數與常數

變數代表儲存位置,必須有確定資料型別。C# 型別安全意義之一即確保變數儲存位置容納適當型別。C# 變數可分七類:靜態變數、實例變數、傳值參數、參考參數、輸出參數、陣列參數、區域變數。區域變數為方法主體內的暫時變數。

靜態與實例變數針對類別或結構內資料成員(欄位)。靜態變數在類型載入後取得儲存空間,未初始化則為型別預設值。實例變數在類別實例建立後取得空間,初始化規則相同。詳細說明見第六講。

方法參數類型:

  • 傳值參數:傳遞變數值副本,方法內修改不影響外部。參考型別變數傳值時,修改其指向的記憶體區塊會保留,但修改參考本身不影響外部。
  • 參考參數 (ref):傳遞變數參考,方法內任何修改保留至外部。
  • 輸出參數 (out):專為多返回值方法設計,類似參考參數但進入方法前可不初始化。
  • 陣列參數 (params):專為傳遞大量陣列元素設計,本質為參考型別的傳值參數。

區域變數嚴格限制在區塊陳述式、for、switch、using 陳述式內宣告,生命週期侷限於陳述式區塊內部。

常數在編譯時確定值,全程不可修改。宣告時必須指派值。因編譯時確定值特性,參考型別可能值僅限 string 與 null。

運算子與運算式

C# 保留 C++ 所有運算子,指標運算子(*、->)與參考運算子(&)需在 unsafe 脈絡。捨棄範圍解析運算子(::),統一改為單點運算子(.)。重點介紹 C# 引入的特殊運算子:as、is、new、typeof、sizeof、stackalloc。

  • as:執行相容型別轉換,失敗回傳 null。
  • is:檢查物件執行時型別是否相容,非 null 且可轉換回傳 true。
  • 關係:expression as type 相當於 expression is type ? (type)expression : (type)null。
  • new (運算子):在堆積建立物件並呼叫建構函式。值型別(結構)在堆疊建立,參考型別(類別)在堆積建立。new (修飾詞):隱藏基類繼承成員。
  • typeof:取得型別的 System.Type 物件。
  • sizeof:取得值型別大小(位元組),需 unsafe 脈絡。
  • stackalloc:在堆疊配置記憶體區塊,僅限區域變數初始化,需 unsafe。

部分運算子可重載,讓自訂型別以簡單運算子表達常用操作。運算式分賦值運算式與布林運算式,未引入新形式。

命名空間與陳述式

C# 採用 namespace 組織程式,可巢狀。using 指示詞簡化型別引用:using System; 可用 Console 替代 System.Console;using Output = System.Console; 可用別名 Output。

C# 陳述式類型:標籤、宣告、區塊、空、運算式、選擇(if/switch)、迴圈(while/do/for/foreach)、跳躍(break/continue/goto/return/throw)、try、checked/unchecked、lock、using。foreach 需特定介面支援,後續詳細闡述。checked/unchecked 用於數值運算溢位檢查;lock 用於執行緒訊號量鎖控制;using 用於片段資源管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved