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

C# 3.0對象初始化器入門(一):自動屬性簡化與對象初始化器語法糖

     編輯:關於C語言

自動屬性:從C# 2.0到3.0的飛躍

C# 2.0 封裝模式(配合VS重構):


private int _one;
public int One
{
    get { return _one; }
    set { _one = value; }
}

C# 3.0 自動屬性**:


public int Done { get; set; } // 一行搞定,編譯器生成備字段

對象初始化器:免構造函數初始化

傳統方式**:


public class MyClass
{
    public string Number { get; set; }
    public string Name { get; set; }
    public MyClass() { }
    public MyClass(string id) { Number = id; }
    public MyClass(string id, string name) { Number = id; Name = name; }
}

// 調用
var c = new MyClass(); c.Name = "yy"; c.Number = "1111";
var d = new MyClass("1111"); d.Name = "yy";
var e = new MyClass("1111", "yy");

C# 3.0 對象初始化器**:


MyClass n = new MyClass { Name = "yy", Number = "1111" };

核心優勢

  • 聲明式風格:代碼即數據結構,閱讀即理解。
  • 無需針對每種組合提供構造函數**:靈活組合任意可訪問屬性/字段。
  • 編譯器保證初始化原子性**:異常拋出時無半初始化對象洩漏。
  • 支持字段與屬性混合初始化**:只要可訪問即可。

適用場景

  • DTO/實體類構建
  • 測試數據準備
  • 配置對象初始化
  • 匿名類型投影(配合LINQ)

這是C# 3.0最實用、普及度最高的語法糖之一,建議作為日常編碼首選模式。

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