IRONSOFTWAREHOME
開發者更新

C# record(對於開發者的運行原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2025年6月22日

C# record 是一項強大的功能,引入了不變資料模型的建立,通過減少樣板程式碼來增強編碼體驗。 本教程旨在簡化C#中record的概念,為初學者提供其語法、使用方式和優勢的指導。

無論您是在處理資料傳輸物件、配置,或只是需要一種高效的方式來表示資料,C# records 提供了一種簡潔且對開發者友好的方法。 我們也會在本文後面討論 IronPDF。

什麼是C# Record?

C# 中的 record 是一種提供簡化語法來定義不變資料模型的參考型別。 與傳統的類定義不同,record 強調基於值的相等性,而非參考相等性。 這意味著如果兩個 record 實例的屬性值相同,它們就被視為相等,而不是僅僅因為它們引用了記憶體中的同一個物件位置。

Record種類:類與結構

在C#中有兩種主要的record型別:

  • Record class: 預設的record型別,這是一種參考型別。
  • Record struct: 為需要值型別的場景引入,這些結構預設是不變的,並提供類似於record類的基於值的比較。

Record宣告

宣告一個record很簡單。 您可以使用record關鍵字,後接型別(class或struct)和record的名稱來定義一個record。 比如,可以宣告一個簡單的人員record如下:

public record class Person(string FirstName, string LastName);

此宣告包含 FirstName 和 LastName 的位置參數,這些參數在底層生成公共屬性及其屬性的基本構造函式。

Records的不可變性質

Records旨在設計為不可變的,這意味著一旦建立一個record實例,其屬性值就不可更改。 這種不可變性對於建立可預測且執行緒安全的應用程式至關重要,特別是當涉及到並發操作時。

不可變的 Record Struct

不可變 record struct 宣告與 record class 類似,但使用 record struct 語法。 它結合了record的不可變性和基於值的比較,以及值型別的性能優勢:

public readonly record struct ImmutablePerson(string FirstName, string LastName);

使用Records

Records簡化了以資料為中心的型別的建立和使用。它們支持繼承,允許非破壞性變更,並提供內建的格式化功能以便於除錯。 讓我們通過實例來探討這些特性。

建立和比較Records

考慮以下範例,我們建立了兩個人員record的實例:

var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True

雖然 person1 和 person2 是兩個不同的實例,但根據其屬性值它們被視為相等,展示了基於值的相等性。 這與參考型別的預設行為有顯著差異,後者側重於參考相等性。

不變屬性

從設計上講,record屬性是不可變的。 這意味著您不能在建立record實例後更改其屬性值。

// This will result in a compilation error
// person1.FirstName = "Jane";

Records的繼承

Records支持繼承,允許您建立資料模型的階層結構。 這是您如何擴展基礎record的演示:

public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);

此 Employee record 擴展了 Person,新增了額外的 Department 屬性。

進階Record特性

非破壞性變更

Records提供了一種內建的方法,從現有的record實例建立新的實例,修改某些屬性,稱為非破壞性變更。

var updatedPerson = person1 with { FirstName = "Jane" };

內建格式化

Records具有內建的格式化功能,以便於除錯和日誌記錄,自動提供屬性的字串表示。

Console.WriteLine(person1);

使用C# Records的優勢

  • **簡化語法:**Records 減少了樣板程式碼的需求,讓您的模型更精簡和易讀。
  • **不可變資料模型:**Records 的不可變性質有助於建立執行緒安全的應用程式。
  • **基於值的相等性:**Records 使用基於值的相等性而不是參考相等性,這對於以資料為中心的型別是理想的。
  • **支持繼承:**Records 可以從其他records繼承,允許程式碼重用和階層資料模型。

IronPDF介紹:C# PDF程式庫

C# Record (How It Works For Developers): Figure 1

IronPDF 概述 是一個為 .NET 開發者設計的PDF程式庫,旨在在C#應用程式中生成、編輯和操縱PDF文件。 IronPDF 支援從HTML內容、CSS、圖像和JavaScript呈現PDF文件。

其核心能力在於從網頁內容建立PDF文件,提供了一種簡化的方式將HTML字串、URL和ASPX網頁表單轉換為PDF文件。 IronPDF高效地運行於各類應用程式,包括表單應用程式、伺服器應用程式和網頁應用程式。

如何安裝IronPDF程式庫

安裝IronPDF很簡單,可以通過Visual Studio中的NuGet包管理器來完成。 按照以下步驟:

  1. 在Visual Studio中,導航到解決方案管理器,右鍵點擊引用,選擇管理NuGet包。
  2. 在NuGet包管理器中,選擇瀏覽並搜索"IronPDF"。
  3. 找到IronPDF包並點擊安裝。

C# Record (How It Works For Developers): Figure 2

或者,您可以使用命令行管理器控制台,透過命令進行安裝:

PM > Install-Package IronPdf

範例:使用C# Record 與 IronPDF

讓我們考慮一個實用的範例,我們使用C# record 來保存資料,然後使用IronPDF生成PDF文件:

public record Person(string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of the Person record.
        var person = new Person("Iron", "Developer");

        // Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
        var renderer = new IronPdf.Rendering.ChromePdfRenderer();

        // Render an HTML string as a PDF document.
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");

        // Save the PDF to the specified location.
        pdf.SaveAs("PersonRecord.pdf");
    }
}

此範例建立了一個簡單的 Person record,然後使用 IronPDF 生成展示該人姓名的PDF文件。 這展示了C# records 如何與 .NET 應用程式中的PDF生成無縫整合。

C# Record (How It Works For Developers): Figure 3

IronPDF 授權

IronPDF 是一種商業產品,提供不同需求的多種授權,包括個人和商業選項。 每次購買都附帶一個終身授權和30天退款保證。 探索 IronPDF 授權選項 在購買授權之前。

結論

C# records 代表著在簡化 .NET 應用程式中的資料建模方面向前邁進了一大步。 通過理解和利用records,開發者可以建立更可靠、易於維護和讀取的程式碼基。

無論您是在開發大型應用程式還是簡單的資料結構,records 所提供的不變性和基於值的相等性等特性,使其成為C#工具箱中不可或缺的工具。

IronPDF 提供了一個機會使用IronPDF 免費試用來測試其功能,在決定購買之前。 如果您發現此軟體符合您的需求,您可以從 $999 開始購買授權。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起