透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
ゲッターとセッターは、C#のようなオブジェクト指向プログラミング言語において重要な概念です。 これらの二つのメソッドを使用すると、クラスのプロパティへのアクセスと変更を制御することができます。 このチュートリアルでは、コードブロックを使用してC#のゲッターとプライベートセッターの初心者と中級者の両方の側面を探ります。
基本的に、ゲッターとセッターはクラス内で同じ名前を持つメソッドに過ぎません。 ゲッターはプライベートフィールド変数の値を返し、セッターはその重要性を変更します。 これらのメソッドは、クラスの内部データ(フィールド)が安全かつ正確にアクセスまたは変更されることを保証します。
次のようなpublic class car
を持ち、private string description property name
があると想像してください。 このクラスの外部の人が説明を知りたい場合、それがプライベートであるため、直接アクセスできません。 ここでゲッターとセッターの役割が登場します。
ゲッターは、private string description
の値を取得することを可能にしますが、ユーザーにそれを直接変更するアクセス権を与えることはありません。 一方、セッターは設定した条件の下で、ユーザーに暗黙のパラメーター記述を変更できるようにします。
アクセスタ修飾子は、フィールドやプロパティがクラス外部からどの程度の可視性とアクセス性を持つかを定義します。 最も一般的に使用される修飾子はpublic
とprivate
です。
Public
: public
で宣言されたフィールドやプロパティは、プログラム内のどこからでもアクセス可能です。 たとえば、コードのどの部分からでもアクセスおよび変更可能なpublic int age
プロパティを持っているかもしれません。Private
: Privateとして宣言されたプロパティまたはフィールドは、定義されたクラス内でのみアクセス可能です。例えば、private int age
です。 このカプセル化は、不正な変更を防ぎ、クラスの内部状態が適切に維持されることを保証します。簡単な例から始めましょう。
//set accessor
public class Person
{
private string name; // This is a private string name property variable
public string GetName() // This is the getter
{
return name;
}
public void SetName(string newName) // This is the setter, new value
{
name = newName;
}
}
static void Main()
{
Person person = new Person();
person.SetName("John");
Console.WriteLine(person.GetName());
}
//set accessor
public class Person
{
private string name; // This is a private string name property variable
public string GetName() // This is the getter
{
return name;
}
public void SetName(string newName) // This is the setter, new value
{
name = newName;
}
}
static void Main()
{
Person person = new Person();
person.SetName("John");
Console.WriteLine(person.GetName());
}
'set accessor
Public Class Person
Private name As String ' This is a private string name property variable
Public Function GetName() As String ' This is the getter
Return name
End Function
Public Sub SetName(ByVal newName As String) ' This is the setter, new value
name = newName
End Sub
End Class
Shared Sub Main()
Dim person As New Person()
person.SetName("John")
Console.WriteLine(person.GetName())
End Sub
上記のclass Person
では、name
プロパティのために、ゲッター(GetName)とセッター(SetName)の両方を持っています。 static void Main
メソッドを実行すると、セッターを使用して名前にその値を設定したため、「John」が出力されます。
さて、「ゲッターとセッター用に常に個別のメソッドを書かなければならないのか?」と思われるかもしれませんが、答えは「いいえ」です。C#はこれを簡素化するために「自動実装プロパティ」または「オートプロパティ」という概念を導入しました。
C#では、private フィールド
とその関連プロパティを宣言するための省略記法である自動プロパティを使用できます。 Here's an example: 例があります。
public class Student
{
public string Name { get; set; } // This is an auto-implemented or automatic property, public string Name
public string Title {get; set;}
}
static void Main()
{
Student student = new Student();
student.Name = "Alice"; // Using setter
Console.WriteLine(student.Name); // Using getter
}
public class Student
{
public string Name { get; set; } // This is an auto-implemented or automatic property, public string Name
public string Title {get; set;}
}
static void Main()
{
Student student = new Student();
student.Name = "Alice"; // Using setter
Console.WriteLine(student.Name); // Using getter
}
Public Class Student
Public Property Name() As String ' - This is an auto-implemented or automatic property, public string Name
Public Property Title() As String
End Class
Shared Sub Main()
Dim student As New Student()
student.Name = "Alice" ' Using setter
Console.WriteLine(student.Name) ' Using getter
End Sub
Student
class
では、Name
プロパティにはゲッターとセッターがあり、これらは自動実装されています。 C# コンパイラは、背後で private string name
フィールドを作成し、Name プロパティがそのフィールドへのアクセスを提供します。
場合によっては、外部から修正できず、読み取ることのみ可能なプロパティを提供したいことがあります。 これは読み取り専用プロパティが役立つ場面です。 プロパティでセッターを省略することにより、読み取り専用にすることができます。
例えば、Person
クラスに読み取り専用の string Description
プロパティを追加したいとしましょう。
public class Person
{
public string Name { get; set; }
public string Description { get; }
public Person(string name, string description)
{
Name = name;
Description = description;
}
}
public class Person
{
public string Name { get; set; }
public string Description { get; }
public Person(string name, string description)
{
Name = name;
Description = description;
}
}
Public Class Person
Public Property Name() As String
Public ReadOnly Property Description() As String
Public Sub New(ByVal name As String, ByVal description As String)
Me.Name = name
Me.Description = description
End Sub
End Class
この例では、Person
クラスのコンストラクタ内でのみ Description
プロパティをセットすることができ、コードが少なくて済みます。 一度設定されると、外部から変更することはできません。
時々、クラスの外部からプロパティを読み取り、クラスの内部からのみ設定できるようにしたい場合があります。 これはprivate set
を使用して達成されます。
public class Program
{
public string Description { get; private set; }
public Program()
{
Description = "This is a program about getters and setters.";
}
}
class ProgramTest
{
static void Main()
{
Program myProgram = new Program();
Console.WriteLine(myProgram.Description); // Allowed
// myProgram.Description = "New Description"; // Not allowed
}
}
public class Program
{
public string Description { get; private set; }
public Program()
{
Description = "This is a program about getters and setters.";
}
}
class ProgramTest
{
static void Main()
{
Program myProgram = new Program();
Console.WriteLine(myProgram.Description); // Allowed
// myProgram.Description = "New Description"; // Not allowed
}
}
Public Class Program
Private privateDescription As String
Public Property Description() As String
Get
Return privateDescription
End Get
Private Set(ByVal value As String)
privateDescription = value
End Set
End Property
Public Sub New()
Description = "This is a program about getters and setters."
End Sub
End Class
Friend Class ProgramTest
Shared Sub Main()
Dim myProgram As New Program()
Console.WriteLine(myProgram.Description) ' Allowed
' myProgram.Description = "New Description"; // Not allowed
End Sub
End Class
class Program
内で、Description
プロパティはprivate set
があり、クラス外からは変更できないため、データの完全性が保証されます。
派生クラスを使用する場合、getterおよびsetterメソッドをオーバーライドしてその動作をカスタマイズできます。 これは、値の取得または設定時に追加のロジックを追加することを可能にします。
public class Person
{
public virtual string Name { get; set; }
}
public class Student : Person
{
private string studentID;
public override string Name
{
get { return base.Name; }
set
{
if (!string.IsNullOrEmpty(value))
base.Name = value;
}
}
}
public class Person
{
public virtual string Name { get; set; }
}
public class Student : Person
{
private string studentID;
public override string Name
{
get { return base.Name; }
set
{
if (!string.IsNullOrEmpty(value))
base.Name = value;
}
}
}
Public Class Person
Public Overridable Property Name() As String
End Class
Public Class Student
Inherits Person
Private studentID As String
Public Overrides Property Name() As String
Get
Return MyBase.Name
End Get
Set(ByVal value As String)
If Not String.IsNullOrEmpty(value) Then
MyBase.Name = value
End If
End Set
End Property
End Class
この例では、Student
クラスはPerson
から継承し、Name
プロパティのセッターをオーバーライドします。 名前を設定する前に検証チェックを追加し、それが空やnullでないことを確認します。
Iron Suiteは、C#開発能力を大幅に向上させる研究開発ツールのコレクションです。 それには IronPDF、IronXL、IronOCR、および IronBarcode が含まれています。 これらの各ツールは独自の目的を持ち、C#のさまざまな側面に統合することができます。
IronPDFについてさらに詳しく学ぶ。これは、開発者がC#でPDFドキュメントを作成、読み取り、編集できるライブラリです。 HTMLをPDFに変換する場合でも、PDFのメタデータをゲッターとセッターで管理する場合でも、IronPDFはあなたをカバーします。
IronPDFは、元のレイアウトとスタイルを正確に保持してHTMLからPDFへの変換に優れています。 それは、レポート、請求書、およびドキュメントなどのWebベースのコンテンツからPDFを作成するのに最適です。 IronPDFはHTMLファイル、URL、生のHTML文字列をサポートしており、簡単に高品質なPDFドキュメントを生成します。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
Excelファイルを操作する際、IronXL Excel Libraryは読み書きのプロセスを簡素化します。 このツールは、Excelファイルのプライベートおよびパブリック文字列または整数を操作するために使用できます。これは、C#のゲッターとセッターの同じ構文を使用してクラス内のデータを処理する方法に似ています。
IronOCR を探索し、画像を検索可能なテキストに変換する光学式文字認識ライブラリです。 お客様のアプリケーションがスキャンされたドキュメントからテキストを読み取る必要がある場合、IronOCRの強力な機能を簡単に統合できます。 それは、前の例のセットアップにあるクラスPersonやクラスStudentのように、プライベートフィールドやパブリックな文字列の説明を処理できます。
IronBarcode の機能を発見すると、バーコードの読み取りと書き込みを必要とするアプリケーションに役立ちます。 それは、C#プログラミングで使用されるゲッターとセッターのように、自動プロパティを通じたカスタマイズとバーコードデータへの直接アクセスの両方を可能にします。
Iron Suiteパッケージは、ゲッターとセッターを含むC#開発にシームレスに統合されます。 これらのツールは、あらゆるC#プロジェクトに価値を追加します。
要約すると:
Getter
およびSetter
:クラスのプライベートフィールドにアクセスし、変更するのに役立ちます。
自動プロパティ
: 自動実装プロパティを使用して、自動的なゲッターとセッターを持つ優雅な方法です。
アクセス修飾子
: プロパティのアクセシビリティを微調整するのに役立ちます。
この時点で、C#におけるゲッターとセッターの使用方法についてしっかりと理解できているはずです。
Iron Suiteの一連のツールは、C#開発者にとって驚異的な機能を提供します。 これらの製品(IronPDF、IronXL、IronOCR、IronBarcodeを含む)はすべて、Iron Software ツールの無料トライアルが付属しており、初期投資なしでこれらの強力なライブラリをプロジェクトに探索および統合することができます。
コミットする準備が整ったら、個別ライセンスは$749から始まります。 これらのツールのうち複数があなたのニーズに合う場合は、2つの個別ライセンスの価格で完全なIron Suiteパッケージを購入する機会を活用できます。