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

C# 3.0 新特性深度解析(一):隱含型別區域變數與陣列完整指南

     編輯:關於C#

C# 3.0 引入 var 關鍵字支援隱含型別區域變數,搭配 LINQ 與匿名類型成為現代 C# 開發基石。本文系統說明語法規則、型別推斷機制、適用範圍與最佳實務。

C# 3.0 主要增強功能

  • 隱含型別區域變數
  • 擴充方法
  • 物件與集合初始化器
  • 匿名類型
  • Lambda 運算式
  • 查詢運算式(LINQ)
  • 運算式樹

var 基本用法


var i = 5;                    // int
var h = 23.56;                // double
var s = "C Sharp";            // string
var intArr = new[] { 1, 2, 3, 4 };        // int[]
var a = new[] { 1, 10, 100, 1000 };       // int[]
var str = new[] { "hello", null, "qun" }; // string[]
var jagged = new[] { new[] {1,2,3}, new[] {5,6,7} }; // int[][]
var anon = new { name = "yaoyao", age = 24 }; // 匿名類型
var vlist = new List<int>();                // List<int>

核心規則

1. 僅限區域變數

只能用於方法內、for、foreach、using 區塊區域變數宣告:


for (var i = 0; i < 10; i++) { }
foreach (var item in items) { }
using (var reader = new StreamReader(path)) { }

2. 必須初始化且不可為 null

編譯器依初始化運算式推斷型別,var x; 或 var y = null; 均編譯錯誤。

3. 強型別而非動態型別

編譯期確定型別,IntelliSense 完整支援:


var i = 0; int value = i; // 合法,i 為 int

4. 匿名類型必須搭配 var

因型別名稱僅編譯器知悉:


var a = new { Name = "maotin", Age = 99 };
Console.WriteLine(a.Name);

LINQ 中的 var 應用


int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var query = from num in numbers where num < 5 select num;
foreach (var n in query) Console.Write(n + " ");

最佳實務建議

  • 簡單型別(var i = 9)降低可讀性,建議顯式宣告
  • 匿名類型、LINQ 查詢、複雜泛型型別強烈建議使用 var
  • foreach 迭代變數搭配 var 提升可讀性
  • var 純屬編譯期語法糖,編譯後轉為實際型別,無執行期效能影響
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved