.NET ヘルプ

C# 継承(開発者のための仕組み)

更新済み 3月 6, 2024
共有:

イントロダクション

C#の主な特徴の一つは、 継承、オブジェクト指向プログラミングに対する強力なサポートでよく知られています (オブジェクト指向プログラミング (OOP)) 原理。 スケーラブルで効果的なコードを書くために不可欠です。 この投稿では、現実世界での使用を強調しながらC#の継承のトピックを探求します。 IronPDF、C#プログラムでPDFを扱うのを容易にする強力なライブラリ。

C# 継承の使用方法

  1. 新しいC#コンソールプロジェクトを作成

  2. 基底クラスを作成し、いくつかのメソッドを追加します。

  3. 新しい派生クラスを作成し、クラスを継承します。

  4. 基本クラスで利用可能な関数/メソッドを呼び出します。

  5. 操作を処理してオブジェクトを破棄します。

C#における継承:概要

オブジェクト指向プログラミングの重要な概念 (オブジェクト指向プログラミング (オブジェクト指向プログラミング (OOP))) 継承は、クラスが (派生クラスまたはサブクラス) 別のクラスの特性や特徴を取り入れる (ベースまたはスーパークラス). C# では、継承は次の形式で基本クラス名を指定することで実現されます: (コロン) シンボル。

単一継承

C#では単一継承がサポートされているため、クラスは1つの基底クラスからのみ継承できます。 単一の基本クラスの機能を増強したい場合に、最も基本的な継承の種類である複合継承を利用します。

class Animal { /* Base/ Parent class */ }
class Dog : Animal { /* Derived class */ }
class Animal { /* Base/ Parent class */ }
class Dog : Animal { /* Derived class */ }
Friend Class Animal
End Class
Friend Class Dog
	Inherits Animal

End Class
VB   C#

階層継承

いくつかのクラスがベースクラスを共有し、階層的な継承スキームによりそれらを継承しています。 複数の派生クラスが継承する単一ベースのクラス。 その目的に応じて、派生クラスごとに固有のさらなる特性がある場合もあります。

class Animal { /* Base class */ }
class Dog : Animal { /* Derived class */ }
class Wolf : Animal { /* Derived class */ }
class Animal { /* Base class */ }
class Dog : Animal { /* Derived class */ }
class Wolf : Animal { /* Derived class */ }
Friend Class Animal
End Class
Friend Class Dog
	Inherits Animal

End Class
Friend Class Wolf
	Inherits Animal

End Class
VB   C#

多重継承

クラスはベースクラスとしても機能し、派生クラスは多重継承においてそれを継承します。 その結果、各クラスがその前のクラスの特性を拡張して、継承の連鎖が形成されます。

class Animal { /* Base class */ }
class Mammal : Animal { /* Derived class */ }
class Dog : Mammal { /* Derived class  */ }
class Animal { /* Base class */ }
class Mammal : Animal { /* Derived class */ }
class Dog : Mammal { /* Derived class  */ }
Friend Class Animal
End Class
Friend Class Mammal
	Inherits Animal

End Class
Friend Class Dog
	Inherits Mammal

End Class
VB   C#

インターフェース継承

C#のクラスは、1つ以上のインターフェイスを実装し、単一の基本クラスから継承することができます。 これは、クラスがインターフェイスに記述されたメソッドの実装を継承することを可能にし、これによりある種の多重継承を実現します。

interface ILogger
{
    void Log(string message);
}
class ConsoleLogger : ILogger //child class
{
    public void Log(string message)
    {
        Console.WriteLine(message);
    }
}
class FileLogger : ILogger
{
    public void Log(string message)
    {
        // Log to file
    }
}
interface ILogger
{
    void Log(string message);
}
class ConsoleLogger : ILogger //child class
{
    public void Log(string message)
    {
        Console.WriteLine(message);
    }
}
class FileLogger : ILogger
{
    public void Log(string message)
    {
        // Log to file
    }
}
Friend Interface ILogger
	Sub Log(ByVal message As String)
End Interface
Friend Class ConsoleLogger 'child class
	Implements ILogger

	Public Sub Log(ByVal message As String) Implements ILogger.Log
		Console.WriteLine(message)
	End Sub
End Class
Friend Class FileLogger
	Implements ILogger

	Public Sub Log(ByVal message As String) Implements ILogger.Log
		' Log to file
	End Sub
End Class
VB   C#

抽象クラスとメソッド

C#では、抽象クラスは他のクラスの基底クラスとして機能し、それ自体でインスタンス化することはできません。 抽象クラスの役割は、その派生クラスに共有のインターフェースと一連の関数を提供することです。 それは、その派生クラスが実装する必要がある属性とメソッドを定義したモデルまたはテンプレートとして機能します。 インターフェイスは、C#が提供する機能です。 インターフェースを介して複数の継承が実質的に可能になり、クラスが複数の契約を実装できるようにします。

抽象クラスを使用して、ベースクラスに一つ以上の抽象メソッドを定義することができます。 その後、これらの抽象メソッドには、派生クラスによって具体的な実装が提供されなければなりません。

abstract class Shape
{
    public abstract double Area(); // Abstract method
}
class Square : Shape
{
    public double Radius { get; set; }
    public override double Area()
    {
        return Math.PI * Math.Pow(Radius, 2);
    }
}
abstract class Shape
{
    public abstract double Area(); // Abstract method
}
class Square : Shape
{
    public double Radius { get; set; }
    public override double Area()
    {
        return Math.PI * Math.Pow(Radius, 2);
    }
}
Friend MustInherit Class Shape
	Public MustOverride Function Area() As Double ' Abstract method
End Class
Friend Class Square
	Inherits Shape

	Public Property Radius() As Double
	Public Overrides Function Area() As Double
		Return Math.PI * Math.Pow(Radius, 2)
	End Function
End Class
VB   C#

これらはC#における継承の応用例の一部に過ぎません。 コードベースの柔軟性の意図した度合い、クラス間の関係、そして設計目標はすべて、選択されるメソッドに影響を与えます。

IronPDF

IronPDFは、.NETおよびJava、Python、Node.jsでPDFを生成、編集、読み取るための強力なツールです。プログラマー向けに最適化されており、コードからPDFファイルの作成を容易に行うことができます。IronPDFは、HTML、CSS、JavaScript、および画像をPDFドキュメントに変換する能力を提供します。

機能

  • HTML to PDF: HTML、CSS、JavaScriptを利用してPDFを生成。
  • PDFの編集: 既存のPDFドキュメントにテキスト、画像、ページ番号、さらにはカスタムヘッダーやフッターを追加。
  • PDFの読み取り: PDFファイルからテキスト、画像、メタデータを抽出。
  • セキュリティ: パスワード保護や暗号化オプションでPDFドキュメントを保護。

利点

  • 使いやすさ: シンプルなAPIで時間を節約。
  • 高品質: 正確で美しいPDFドキュメントを生成。
  • 柔軟性: 様々なプラットフォームや言語で利用可能。

対応ライセンス

IronPDFは様々なライセンスオプションがあり、Lite License、Plus License、Professional License、Unlimited Licenseが用意されています。

技術サポートや詳細については、Iron Softwareの公式サイトをご覧ください。

.NET ライブラリ IronPDF プログラマーはC#言語を使用してPDFドキュメントを作成、編集、および変更することができます。 IronPDFライブラリは、HTMLからPDFを生成したり、HTMLをPDFに変換したり、PDFドキュメントを結合または分割したり、既存のPDFにテキスト、画像、注釈を追加したりするなど、PDFファイルに関するさまざまなタスクを実行するためのさまざまなツールと機能を提供しています。IronPDFについて詳しく知るには、以下を参照してください。 ドキュメント ページ

IronPDF をインストール

IronPDFライブラリを取得する 次回のパッチにはそれが必要です。 これを行うには、次のコードをパッケージ マネージャーに入力します:

Install-Package IronPDF 
//or 
dotnet add package IronPdf

C# 継承(開発者への仕組み):図1 - パッケージマネージャーコンソールを使用して IronPDF パッケージをインストールし、以下のコマンドを入力します:「Install-Package IronPDF」または「dotnet add package IronPdf」。

別のオプションとして、NuGet Package Managerを使用して「IronPDF」パッケージを探すことができます。 IronPDFに関連するすべてのNuGetパッケージの中から、必要なパッケージをこのリストから選択してダウンロードすることができます。

C# 継承 (開発者向けの仕組み)図 2 - NuGet パッケージ マネージャーを使用して IronPDF パッケージをインストールすることもできます。 Browseタブで「ironpdf」パッケージを検索し、最新バージョンのIronPDFを選択してインストールしてください。

継承クラスでのIronPDF

IronPDFという機能豊富なライブラリは、C#でPDFドキュメントを取り扱うのを簡単にするために作成されました。 IronPDFを継承クラスと統合することで、アプリケーションの機能を向上させ、PDFの作成、操作、その他を簡単に行うことができます。

IronPDFを使用した継承の利点

  • 階層クラスを設定することで、継承は整理されたコードの組織化を促進します。 IronPDFを統合してPDFを処理するための専用クラスを作成し、清潔で整理されたコードベースを維持することができます。
  • コードの再利用: 基本クラスから継承するクラスは、コードの再利用を可能にします。 これは、IronPDFのようなライブラリを使用している場合に特に便利です。なぜなら、一般的なPDF関連の機能を再利用可能な基本クラスにカプセル化して、アプリケーションの他の領域で再利用できるからです。

    PdfDocumentの機能を拡張し、特にIronPDF統合のために、IronPdfDocumentというクラスを作成しましょう。

using IronPdf;
public class IronPdfDocument : PdfDocument
{
    // Additional properties or methods specific to IronPDF can be added here
    public void ConvertToPdf()
    {
        // Code to convert the HTML to PDF using IronPDF
           var Renderer = new IronPdf.HtmlToPdf();
           var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>");
           PDF.SaveAs("Output.pdf");
    }
}
using IronPdf;
public class IronPdfDocument : PdfDocument
{
    // Additional properties or methods specific to IronPDF can be added here
    public void ConvertToPdf()
    {
        // Code to convert the HTML to PDF using IronPDF
           var Renderer = new IronPdf.HtmlToPdf();
           var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>");
           PDF.SaveAs("Output.pdf");
    }
}
Imports IronPdf
Public Class IronPdfDocument
	Inherits PdfDocument

	' Additional properties or methods specific to IronPDF can be added here
	Public Sub ConvertToPdf()
		' Code to convert the HTML to PDF using IronPDF
		   Dim Renderer = New IronPdf.HtmlToPdf()
		   Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>")
		   PDF.SaveAs("Output.pdf")
	End Sub
End Class
VB   C#

IronPdfDocumentは、PdfDocumentから派生した強化された例です。 このクラスはIronPDFを簡単に操作するために設計されています。 PDF関連の機能を簡単に扱うために、特定の属性やメソッドを使用することができます。 IronPDFの詳細については、こちらをご覧ください これ.

PDFレポートジェネレーターの構築

これらのアイデアを実践に移し、継承とIronPDFを利用して基本的なPDFレポートジェネレーターを作成しましょう。 まず、レポートの基本クラスを使います:

public class Report
{
    public virtual void GenerateReport()
    {
                var Renderer = new IronPdf.HtmlToPdf();
                var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>");
                PDF.SaveAs("Output.pdf");
    }
}
public class Report
{
    public virtual void GenerateReport()
    {
                var Renderer = new IronPdf.HtmlToPdf();
                var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>");
                PDF.SaveAs("Output.pdf");
    }
}
Public Class Report
	Public Overridable Sub GenerateReport()
				Dim Renderer = New IronPdf.HtmlToPdf()
				Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>")
				PDF.SaveAs("Output.pdf")
	End Sub
End Class
VB   C#

次に、基本クラスから派生し、IronPDF機能を追加する派生クラスPdfReportを作成しましょう。

public class PdfReport : Report
{
    public override void GenerateReport()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");
        PDF.SaveAs("Output.pdf");
        Console.WriteLine("Generating PDF report...");
        // Additional code specific to PDF generation using IronPDF
    }
}
public class PdfReport : Report
{
    public override void GenerateReport()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");
        PDF.SaveAs("Output.pdf");
        Console.WriteLine("Generating PDF report...");
        // Additional code specific to PDF generation using IronPDF
    }
}
Public Class PdfReport
	Inherits Report

	Public Overrides Sub GenerateReport()
		Dim Renderer = New IronPdf.HtmlToPdf()
		Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>")
		PDF.SaveAs("Output.pdf")
		Console.WriteLine("Generating PDF report...")
		' Additional code specific to PDF generation using IronPDF
	End Sub
End Class
VB   C#

上記の例は、TitleプロパティとGenerateReport関数が、基底クラスであるReportクラスからPdfReportに継承されていることを示しています。 新しいプロパティ「Author」を追加し、IronPDFを使用したPDFレポート生成のために、独自のロジックによってGenerateReport関数をオーバーライドします。 以下は、コードから生成された出力PDFです。

C# 継承(開発者向け動作の仕組み):図3

HTMLストリングをPDFに変換するためのコードについては、こちらを参照してください これ.

結論

ライブラリとペアリングすると IronPDF継承は、アプリケーション開発プロセスを強化する強力な機能です。 ここでは、継承の基礎について説明し、IronPDFと統合するための便利な方法についても紹介しました。

階層的なクラス構造の開発は、モジュラーでよく構造化されたコードベースをもたらします。 クラスを開発する際に、基本クラスの幅広い機能を継承しつつ、特定のタスクに対応させると、コードの拡張性や再利用性の利点が明らかになります。 IronPDFを統合するとこれらのメリットが増加し、C#アプリケーションでPDFドキュメントを管理するためのスムーズなソリューションを提供します。

IronPDFの $749 ライトパックには、永久ライセンス、アップグレードオプション、そして長期間のソフトウェアサポートが含まれています。 テスト期間中にウォーターマークが付いている間、クライアントは実際のアプリケーション環境でアイテムを評価することができます。 IronPDFの価値、許可および初期フォームについて詳しく知るには、ぜひ以下をご覧ください。 ライセンスページ. 公式サイトを訪れてください ウェブサイト 他のIron Software製品に慣れるため。

< 以前
C#リンター(開発者のための動作方法)
次へ >
C# ランダム整数(開発者向けの動作方法)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >