ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
C# レコード不変データモデルの作成を容易にし、定型コードを減らすことでコーディング体験を向上させるために導入された強力な機能です。 このチュートリアルは、初心者向けにC#のレコードの概念を簡単に理解できるように、構文、使用方法、および利点について説明することを目的としています。
データ転送オブジェクトや構成、または単にデータを効率的に表現する方法を必要としている場合、C#のレコードは簡潔で開発者に優しいアプローチを提供します。 また、議論いたしますIronPDF後ほどこの記事の中で述べます。
C#のレコードは、不変のデータモデルを定義するための簡素化された文法を提供する参照型です。 伝統的なクラス定義とは異なり、レコードは参照の等価性ではなく、値に基づく等価性を強調します。 これは、2つのレコードインスタンスが同一のオブジェクト位置を指しているだけではなく、そのプロパティ値が同じである場合に等しいと見なされることを意味します。
C#には2つの主要なレコードのタイプがあります:
レコードを宣言するのは簡単です。 レコードを定義するには、record キーワードに続けてタイプを指定します。(クラスまたは構造体)レコードの名前。 例えば、シンプルな人物レコードは次のように宣言できます:
public record class Person(string FirstName, string LastName);
public record class Person(string FirstName, string LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'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);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'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: True
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
Dim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) ' Output: True
person1 と person2 は二つの異なるインスタンスですが、それらはプロパティ値に基づいて等しいと見なされ、値ベースの等価性を示しています。 これは、参照型のデフォルトの動作から大きく離れたものであり、参照の等価性に焦点を当てています。
設計上、レコードのプロパティは不変です。 これは、レコードインスタンスが作成された後にそのプロパティ値を変更できないことを意味します。
// This will result in a compilation error
// person1.FirstName = "Jane";
// 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);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'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" };
'INSTANT VB TODO TASK: C# 'with expressions' are not converted by Instant VB:
'var updatedPerson = person1 with { FirstName = "Jane" }
レコードには、デバッグやログ記録を容易にするための組み込みフォーマット機能が備わっており、プロパティの文字列表現を自動的に提供します。
Console.WriteLine(person1);
Console.WriteLine(person1);
Console.WriteLine(person1)
IronPDFの概要は、C#アプリケーション内でPDFドキュメントを生成、編集、および操作するために設計された、.NET開発者向けのPDFライブラリです。 IronPDFはレンダリングをサポートしていますHTMLコンテンツからのPDF, CSS, 画像, とJavaScript。
その中核となる機能は、WebコンテンツからPDF文書を作成することであり、HTML文字列、URL、ASPX WebフォームをPDFファイルに変換する合理的なアプローチを提供します。 IronPDFは、フォームアプリケーション、サーバーアプリケーション、およびWebアプリケーションなど、さまざまなアプリケーションタイプで効率的に動作します。
IronPDFのインストールは簡単であり、Visual StudioのNuGetパッケージマネージャーを介して実行できます。 以下の手順に従ってください:
Visual Studioで、ソリューション エクスプローラーに移動し、[参照]を右クリックして、[NuGet パッケージの管理]を選択します。
NuGet パッケージ マネージャーで、「参照」を選択し、「IronPdf」を検索します。
IronPDFパッケージを見つけてインストールをクリックします。
または、以下のコマンドを使用してパッケージ マネージャー コンソールでインストールすることができます:
Install-Package IronPdf
実用的な例を考えてみましょう。C#のレコードを使用してデータを保持し、それを使用してIronPDFでPDF文書を生成するケースです:
public record Person(string FirstName, string LastName);
class Program
{
static void Main(string [] args)
{
var person = new Person("Iron", "Developer");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
pdf.SaveAs("PersonRecord.pdf");
}
}
public record Person(string FirstName, string LastName);
class Program
{
static void Main(string [] args)
{
var person = new Person("Iron", "Developer");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
pdf.SaveAs("PersonRecord.pdf");
}
}
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record Person(string FirstName, string LastName)
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim person As New Person("Iron", "Developer")
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>")
pdf.SaveAs("PersonRecord.pdf")
End Sub
End Class
次の例では、シンプルなPersonレコードを作成し、IronPDFを使用してその人物の名前を表示するPDFドキュメントを生成します。 それは、C#レコードが.NETアプリケーションでのPDF生成にどれほどシームレスに統合できるかを示しています。
IronPDFは、個人および商業オプションを含むさまざまなニーズに合わせたライセンスを提供する商用製品です。 各購入にはライセンスの期限が永久に続くことと、30日間の返金保証が含まれています。 IronPDFのライセンスオプションを見るライセンスを購入する前に。
C# レコードは、.NET アプリケーションにおけるデータモデリングの簡素化に向けた重要な一歩を表しています。 レコードを理解し活用することで、開発者はより信頼性が高く、保守性があり、読みやすいコードベースを作成できます。
大規模なアプリケーションやシンプルなデータ構造に取り組む際、レコードが提供する機能(不変性から値ベースの等価性まで)は、C#ツールキットにおいて欠かせないツールとなります。
IronPDFは、その機能をテストする機会を提供しますIronPdf 無料トライアル購入を決定する前に。 ソフトウェアがニーズに合っている場合、$749から始まるライセンスを購入できます。
9つの .NET API製品 オフィス文書用