C# Record(開発者向けの動作方法)
C# レコード は、不変データモデルの作成を容易にし、定型コードを削減することでコーディング体験を向上させるために導入された強力な機能です。 このチュートリアルは、C# のレコードの概念を初心者に簡単に理解させることを目的としており、その構文、使用法、および利点を案内します。
データ転送オブジェクト、設定、または単にデータを効率的に表現する必要がある場合でも、C# レコードは簡潔で開発者に優しいアプローチを提供します。 この記事の後半で IronPDF についても説明します。
C# レコードとは何ですか?
C# におけるレコードは、不変データモデルを定義するための簡略化された構文を提供する参照型です。 従来のクラス定義とは異なり、レコードは参照の等価性よりも値に基づく等価性を重視します。 つまり、メモリ上の同じオブジェクト場所を参照するだけではなく、プロパティ値が同じであれば2つのレコードインスタンスは同等と見なされます。
レコードの種類: クラスと構造体
C# には2つの主要なレコードの種類があります:
-レコード クラス:参照型であるデフォルトのレコード タイプ。 -レコード構造体:値型を必要とするシナリオ向けに導入されたもので、デフォルトでは不変であり、レコード クラスと同様の値ベースの比較を提供します。
レコード宣言
レコードを宣言するのは簡単です。 record キーワードの後に型(クラスまたは構造体)とレコードの名前を続けてレコードを定義できます。 たとえば、単純な人物レコードは次のように宣言できます:
public record class Person(string FirstName, string LastName);public record class Person(string FirstName, string LastName);この宣言には、FirstName と LastName の位置パラメーターが含まれており、これにより、背後ではこれらのプロパティのための公開プロパティと主コンストラクタが生成されます。
レコードの不変性
レコードは不変になるように設計されており、レコードインスタンスが作成されると、そのプロパティ値は変更できません。 この不変性は、予測可能でスレッドセーフなアプリケーションを作成するのに重要であり、特に同時操作を扱う際に有用です。
不変レコード構造体
不変のレコード構造体は、record struct 構文を使用してレコードクラスと同様に宣言されます。 それはレコードの不変性と値ベースの比較を値型のパフォーマンス上の利点と組み合わせます:
public readonly record struct ImmutablePerson(string FirstName, string LastName);public readonly record struct ImmutablePerson(string FirstName, string LastName);レコードの操作
レコードはデータ中心の型の作成と使用を簡略化します。継承をサポートし、破壊を伴わない変更を可能にし、デバッグを容易にするための組み込みの書式設定を提供します。 これらの機能を例を通して探求しましょう。
レコードの作成と比較
次の例では、人物レコードのインスタンスを2つ作成しています:
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: Truevar person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: Trueperson1 と person2 が2つの別個のインスタンスであるにもかかわらず、プロパティの値に基づいて同等と見なされ、値ベースの等価性を示しています。 これは、参照平等に焦点を当てた参照型のデフォルトの振る舞いからの重要な逸脱です。
不変プロパティ
設計上、レコードのプロパティは不変です。 つまり、レコードインスタンスが作成された後、そのプロパティ値を変更することはできません。
// This will result in a compilation error
// person1.FirstName = "Jane";// This will result in a compilation error
// person1.FirstName = "Jane";レコードの継承
レコードは継承をサポートしており、データモデルの階層を作成できます。 基本レコードを次のように拡張できます:
public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);この Employee レコードは Person を拡張し、追加の Department プロパティを追加しています。
高度なレコード機能
破壊を伴わない変更
レコードは、既存のレコードインスタンスからいくつかのプロパティを変更した新しいレコードインスタンスを作成するための組み込みの方法を提供します。これは破壊を伴わない変更として知られています。
var updatedPerson = person1 with { FirstName = "Jane" };var updatedPerson = person1 with { FirstName = "Jane" };組み込み書式設定
レコードには組み込みのフォーマットがあり、デバッグやログ作成を簡素化するために、プロパティの文字列表現を自動的に提供します。
Console.WriteLine(person1);Console.WriteLine(person1);C# レコードの利点
-簡素化された構文:レコードにより定型コードの必要性が減り、モデルがより簡潔で読みやすくなります。 -不変データ モデル:レコードの不変の性質は、スレッドセーフなアプリケーションの作成に役立ちます。 -値ベースの等価性:レコードは参照の等価性ではなく値ベースの等価性を使用します。これは、データ中心の型に最適です。 -継承のサポート:レコードは他のレコードから継承できるため、コードの再利用と階層型データ モデルが可能になります。
IronPDFの紹介: C# PDFライブラリ

IronPDF の概要 は .NET 開発者向けの PDF ライブラリであり、C# アプリケーション内で PDF ドキュメントを生成、編集、操作するために設計されています。 IronPDFは、HTMLコンテンツから、CSS、画像、およびJavaScriptからPDFをレンダリングすることをサポートしています。
その主要な機能は、WebコンテンツからPDFドキュメントを作成することで、HTML文字列、URL、およびASPX Web フォームをPDFファイルに変換するための合理化されたアプローチを提供します。 IronPDFは、フォームアプリケーション、サーバーアプリケーション、Webアプリケーションを含むさまざまなアプリケーションタイプで効率的に動作します。
IronPDF ライブラリのインストール方法
IronPDFのインストールは簡単で、Visual Studio の NuGet パッケージマネージャーを通じて実行できます。 次の手順に従います。
- Visual Studioで、ソリューションエクスプローラーに移動し、参照を右クリックして"NuGet パッケージの管理"を選択します。
- NuGet パッケージマネージャーで、ブラウズを選択し、"IronPdf"を検索します。
- IronPDFパッケージを見つけてインストールをクリックします。

別の方法として、パッケージ マネージャー コンソールで次のコマンドを使ってインストールすることもできます:
Install-Package IronPdf
サンプル: IronPDF で C# レコードを使用する
C# レコードを使用してデータを保持し、それから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");
}
}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 レコードを作成し、IronPDF を使用してその人の名前を表示するPDFドキュメントを生成します。 これは、C# レコードが .NET アプリケーションでの PDF 生成と如何にシームレスに統合できるかを示します。

IronPDFライセンス

IronPDFは、さまざまなニーズに合わせた個人および商用オプションを含むさまざまなライセンスを提供する商用製品です。 各購入にはライフタイムライセンスと30日間の返金保証が付いています。 IronPDFのライセンスオプションを探索し、ライセンスの購入を検討してください。
結論
C#レコードは、.NETアプリケーションのデータモデリングを簡素化する上で重要な一歩を表しています。 レコードを理解し活用することで、開発者はより信頼性が高く、保守可能で可読性の高いコードベースを作成することができます。
大規模なアプリケーションや単純なデータ構造のいずれであっても、不変性から値ベースの等価性まで、提供される機能はC#ツールキットにおいて欠かせないツールとなります。
IronPDFは、IronPDF Free Trial を使用して購入を決定する前にその機能をテストする機会を提供します。 ソフトウェアがニーズを満たしていると判断した場合、$799 から始めてライセンスを購入することができます。
よくある質問
C#のレコードを使用してPDFを生成するにはどうすればよいですか?
C#のレコードはデータを効率的に格納することができ、その後IronPDFを使用してPDFドキュメントを生成するのに利用できます。必要なデータを保持するレコードを作成し、このデータをIronPDFでPDF形式にレンダリングすることが可能です。
C#のレコードを使用する利点は何ですか?
C#のレコードにはいくつかの利点があります。構文が簡潔で、不変データモデル、値に基づく等価、継承をサポートしています。これらの機能により、レコードは簡潔で信頼性のあるデータ中心の型を作成するのに適しています。
C#におけるレコードはどのように等価を処理しますか?
C#のレコードは値に基づく等価を強調しています。これは、プロパティの値が一致する場合、メモリの位置に関係なく、2つのレコードインスタンスが等価と見なされることを意味します。
C#でレコードを宣言する方法は?
C#のレコードは、recordキーワードに続けて種類(クラスまたは構造体)とレコードの名前を指定して宣言します。例えば、public record class Person(string FirstName, string LastName);です。
レコードクラスとレコード構造体の違いは何ですか?
レコードクラスは参照型で、レコード構造体は値型です。どちらも不変性と値に基づく比較を提供しますが、メモリの割り当てと使用ケースにおいて異なります。
C#レコードのプロパティを作成後に変更することはできますか?
C#のレコードは、不変性を持つように設計されており、作成後にプロパティを変更できません。ただし、変更されたプロパティを持つ新しいレコードインスタンスを作成する非破壊的な変更を行うことができます。
IronPDFはC#アプリケーションをどのように強化しますか?
IronPDFは、PDFドキュメントの生成、編集、操作において強力な機能を提供することでC#アプリケーションを強化します。HTMLコンテンツからPDFを作成することができ、ドキュメント管理において汎用性のあるツールとなります。
IronPDFを.NETプロジェクトにインストールする方法は?
.NETプロジェクトにIronPDFをインストールするには、Visual StudioのNuGetパッケージマネージャーを使用するか、パッケージマネージャーコンソールでInstall-Package IronPdfコマンドを実行します。
C#レコードで非破壊的な変更がどのように機能するか?
C#レコードの非破壊的な変更では、既存のインスタンスから一部のプロパティを変更して新しいレコードインスタンスを作成しますが、元のインスタンスは変更しません。
C#開発におけるPDFライブラリの役割は何ですか?
IronPDFのようなPDFライブラリは、C#開発においてPDFドキュメントの生成、編集、操作のために使用されます。開発者がアプリケーションにPDF機能を効率的に統合するのを助けます。








