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

Visual C# 3.0 新特性概覽 (1) - 隱含型別區域變數與匿名型別

     編輯:關於C語言

C# 3.0 七大新特性

  1. 隱含型別區域變數 (var)
  2. 匿名型別
  3. 延伸方法
  4. 物件/集合初始化設定
  5. Lambda 運算式
  6. 查詢運算式
  7. 運算式樹

隱含型別區域變數

新關鍵字 var:型別從初始化運算式**隱含推斷**。

var i = 1;           // 強型別 int
var name = "Edison"; // 強型別 string
var arr = new[] { 1, 2, 3 }; // int[]

限制規則

  • 宣告**必須同時初始化**
  • 仍為**強型別**:var i = 1; i = "str"; 編譯錯誤
  • 初始化運算式**不能為 null**
  • **僅限區域變數**(非欄位/屬性/參數)
  • 多重宣告同一變數需型別一致

隱含型別陣列

var intArr = new[] { 1, 2, 3, 4 }; // 推斷為 int[]

匿名型別

無需預先定義類別,直接建立實例:

new { hair = "black", skin = "green", teethCount = 64 }

編譯器自動產生對應類別:

class __Anonymous1 
{ 
    private string _hair = "black"; 
    public string hair { get => _hair; set => _hair = value; }
    // skin, teethCount 同理
}

相同名稱/型別/順序的匿名型別**共用同一個編譯器產生的類別**,實例可互換。

搭配 var 使用

var frankenstein = new { hair = "black", skin = "green", teethCount = 64 };

var 提供靜態型別支援,讓匿名型別實例可在強型別變數中流動。

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