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

C# 變數宣告與初始化完整指南:型別推論、預設值、區域變數語意與最佳實務

     編輯:關於C#

變數宣告語法演進

版本語法範例
C# 1.0顯性型別int x = 10;
C# 3.0var 型別推論var x = 10; (編譯期推論為 int)
C# 7.0解構宣告var (x, y) = GetTuple();
C# 7.1預設值運算式int x = default;
C# 9.0目標型別 newList list = new();

區域變數規則

  • 必須初始化後才能使用 (編譯器強制流程分析)
  • 作用域:宣告所在區塊 { ... } 至區塊結束
  • 不可在同一區塊重複宣告同名變數
  • var 僅限區域變數,不可用於欄位/屬性/參數

預設值表 (default(T))

多變數宣告與鏈式指派

// 同型別多變數
int x = 1, y = 2, z = 3;

// 鏈式指派 (右結合)
int a, b, c;
a = b = c = 10; // c=10, b=10, a=10

// 解構宣告 (C# 7+)
var (name, age) = ("John", 30);
// 等同
string name = "John";
int age = 30;

// 捨棄變數 _
var (_, _, count) = GetTuple(); // 忽略前兩個

常見錯誤與最佳實務

型別分類預設值範例
數值型別0 / 0.0default(int) = 0
boolfalsedefault(bool) = false
char'\0' (U+0000)default(char) = '\0'
列舉0 (對應底層型別)default(FileAccess) = 0
參考型別nulldefault(string) = null
結構體所有欄位遞歸預設值default(Point) = {X=0,Y=0}
Nullable<T>null (HasValue=false)default(int?) = null
錯誤原因修正
使用未初始化變數流程分析未通過宣告時指派、所有分支皆指派
var 推論非預期型別字面常值型別 (如 10 推論 int、10L 推論 long)顯性指定或加後綴
迴圈變數捕獲陷阱foreach (var x in xs) actions.Add(() => x) 全捕獲同一變數區域複製 var tmp = x; actions.Add(() => tmp)
遮蔽外層變數內層區塊宣告同名重命名、縮小作用域

命名慣例 (Microsoft 官方)

  • 區域變數/參數:camelCase (userName)
  • 私有欄位:_camelCase 或 camelCase (_userName)
  • 常數:PascalCase (MaxConnectionCount)
  • 避免匈牙利標記法 (strName, iCount)

宣告範例1
宣告範例2
var推論
預設值
解構宣告

本文對應《叩響 C# 之門》第 2.1 節整型變量(一)教學內容

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