C# 繼承(對於開發者的運行原理)
C# 的一個主要特徵繼承,以對面向物件程式設計(OOP)原則的強大支援而聞名。 這對於撰寫可擴展和有效的程式碼至關重要。 這篇文章將探討 C# 繼承的主題,強調IronPDF程式庫在現實中的應用,一個強大的程式庫讓在 C# 程式中處理 PDF 更加容易。
如何使用 C# 繼承
- 建立一個新的 C# 控制臺專案。
- 建立一個帶有一些方法的基底類別。
- 撰寫一個新的派生類別並繼承自基底類別。
- 調用基底類別中可用的函式/方法。
- 處理操作並處置物件。
C# 中的繼承:概述
在OOP(面向物件編程)中,關鍵概念是繼承,這允許一個類別(派生類或子類)從另一個類別(基底類或超類)獲得特徵和屬性。 在 C# 中,繼承通過在冒號 : 符號後面放置基底類別名稱來實現。
單一繼承
在 C# 中,一個類只可以從一個基底類別繼承,因為只支援單一繼承。 這在您想要一個派生類別擴展單一基底類的功能時非常有用。
class Animal { /* Base/Parent class */ }
class Dog : Animal { /* Derived class */ }Friend Class Animal
End Class
Friend Class Dog
Inherits Animal
End ClassFriend Class Animal
End Class
Friend Class Dog
Inherits Animal
End Class階層繼承
在階層繼承模式中,幾個類別可以從相同的基底類別繼承。 此設定允許多個派生類別從單一基底類別繼承。
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 ClassFriend Class Animal
End Class
Friend Class Dog
Inherits Animal
End Class
Friend Class Wolf
Inherits Animal
End Class多級繼承
在多級繼承中,一個類別同時作為基底類和派生類。 這建立了一個繼承鏈,每個類別都基於其前身構建。
class Animal { /* Base class */ }
class Mammal : Animal { /* Derived class from Animal */ }
class Dog : Mammal { /* Derived class from Mammal */ }class Animal { /* Base class */ }
class Mammal : Animal { /* Derived class from Animal */ }
class Dog : Mammal { /* Derived class from Mammal */ }Friend Class Animal
End Class
Friend Class Mammal
Inherits Animal
End Class
Friend Class Dog
Inherits Mammal
End ClassFriend Class Animal
End Class
Friend Class Mammal
Inherits Animal
End Class
Friend Class Dog
Inherits Mammal
End Class接口繼承
在 C# 中,一個類別可以實現一個或多個接口並從單一基底類別繼承。 這允許類別繼承接口中描述的方法實現,從而實現某種多重繼承。
interface ILogger
{
void Log(string message);
}
class ConsoleLogger : ILogger // Derived class
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
class FileLogger : ILogger
{
public void Log(string message)
{
// Code to log to a file
}
}interface ILogger
{
void Log(string message);
}
class ConsoleLogger : ILogger // Derived class
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
class FileLogger : ILogger
{
public void Log(string message)
{
// Code to log to a file
}
}Friend Interface ILogger
Sub Log(ByVal message As String)
End Interface
Friend Class ConsoleLogger ' Derived 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
' Code to log to a file
End Sub
End ClassFriend Interface ILogger
Sub Log(ByVal message As String)
End Interface
Friend Class ConsoleLogger ' Derived 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
' Code to log to a file
End Sub
End Class抽象類別和方法
在 C# 中,抽象類別作為基底類別而存在,不能單獨實例化。 其目的是為其派生類提供一個通用接口和方法集。 此類基底類別中的抽象方法必須由派生類實現。
abstract class Shape
{
public abstract double Area(); // Abstract method
}
class Circle : 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 Circle : 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 Circle
Inherits Shape
Public Property Radius() As Double
Public Overrides Function Area() As Double
Return Math.PI * Math.Pow(Radius, 2)
End Function
End ClassFriend MustInherit Class Shape
Public MustOverride Function Area() As Double ' Abstract method
End Class
Friend Class Circle
Inherits Shape
Public Property Radius() As Double
Public Overrides Function Area() As Double
Return Math.PI * Math.Pow(Radius, 2)
End Function
End Class這些是 C# 繼承的例子。 選擇的方法取決於所需的靈活性、類與類之間的關係以及設計目標。
IronPDF
.NET 程式庫IronPDF允許程式員使用 C# 建立、編輯和修改 PDF 文件。 IronPDF 提供多種工具來管理 PDF 任務,例如從 HTML 生成 PDF、將 HTML 轉換為 PDF、合併或拆分 PDF 文件,以及對 PDF 新增註釋。 有關更多資訊,請參閱IronPDF 文件。
安裝IronPDF
要使用 IronPDF,您需要安裝它。 您可以在套件管理器主控台中使用以下命令:
or

或者,使用 NuGet 套件管理器搜尋並安裝 "IronPDF"。
! 
繼承類別中的 IronPDF
IronPDF 提升了在 C# 中處理 PDF 文件的便捷性。 通過將 IronPDF 與繼承類別結合,您可以輕鬆地擴展應用程式的功能來建立和操作 PDF。
使用 IronPDF 繼承的優勢
- 組織有序的程式碼結構: 繼承促進了一個組織良好的程式碼結構。 您可以建立專門處理 PDF 的類別,而同時保持清晰的程式碼基礎。
- 程式碼重用性: 通過擴展基底類,您可以有效地重用程式碼。 這在使用像 IronPDF 這樣的程式庫時特別有利,因為您可以在基底類別中封裝常見的 PDF 操作以供重用。
擴展 IronPDF 功能
為了擴展 IronPDF 整合的 PdfDocument 的功能,讓我們建立一個名為 IronPdfDocument 的類別:
using IronPdf;
public class IronPdfDocument : PdfDocument
{
// Additional properties or methods specific to IronPDF can be added here
// Method to convert HTML to PDF
public void ConvertToPdf()
{
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
// Method to convert HTML to PDF
public void ConvertToPdf()
{
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
' Method to convert HTML to PDF
Public Sub ConvertToPdf()
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>")
PDF.SaveAs("Output.pdf")
End Sub
End ClassImports IronPdf
Public Class IronPdfDocument
Inherits PdfDocument
' Additional properties or methods specific to IronPDF can be added here
' Method to convert HTML to PDF
Public Sub ConvertToPdf()
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello, World</h1>")
PDF.SaveAs("Output.pdf")
End Sub
End Class這個 IronPdfDocument 類別擴展了 PdfDocument,以便於使用 IronPDF 輕鬆處理 PDF。
構建 PDF 報告生成器
讓我們使用繼承和 IronPDF 來建立一個簡單的 PDF 報告生成器。 首先,我們定義一個 Report 基底類別:
public class Report
{
// Base method for generating a 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
{
// Base method for generating a 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
' Base method for generating a 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 ClassPublic Class Report
' Base method for generating a 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現在,我們建立一個 PdfReport 派生類別,結合 IronPDF 的特定功能:
public class PdfReport : Report
{
// Override method to customize PDF report generation
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 for PDF generation with IronPDF
}
}public class PdfReport : Report
{
// Override method to customize PDF report generation
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 for PDF generation with IronPDF
}
}Public Class PdfReport
Inherits Report
' Override method to customize PDF report generation
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 for PDF generation with IronPDF
End Sub
End ClassPublic Class PdfReport
Inherits Report
' Override method to customize PDF report generation
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 for PDF generation with IronPDF
End Sub
End Class在此範例中,PdfReport 類別繼承了 Report,並覆寫了 GenerateReport 方法以包含基於 IronPDF 的 PDF 生成的自定邏輯。

有關將 HTML 字串轉換為 PDF 的更多資訊,請參閱 HTML 轉 PDF 範例。
結論
與IronPDF這樣的程式庫配合使用的繼承是一個強大的功能,它提升了應用程式開發過程。 這篇文章介紹了繼承的基礎知識,並提供了與 IronPDF 的整合實踐指南。
發展階層化的類結構將引導到模組化和結構良好的程式碼基礎。 繼承基底類別的一般功能並同時處理特定任務的類別展示了可重用性和可擴展性的優勢。 整合 IronPDF 提升了這些優勢,在您的 C# 應用程式中提供無縫的 PDF 管理。
IronPDF 的 $999 Light 包括永久授權、升級選項以及一年的軟體支援。 在加水印的試用期內,您可以在真實應用環境中評估軟體。 有關 IronPDF 的定價、授權和試用版本的更多詳細資訊,請存取IronPDF 授權頁面。 瀏覽官方Iron Software 網站以了解更多 Iron Software 產品。
Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。