.NET 幫助

C# 繼承(開發者指南)

發佈 2024年3月6日
分享:

介紹

C# 的主要特徵之一, 繼承,廣為人知以其對於物件導向程式設計的強大支援 (物件導向程式設計) 原則。這對於編寫可擴展和有效的代碼是必不可少的。這篇文章將探討 C# 繼承的主題,重點是其在現實世界中的應用。 IronPDF一個強大的庫,使在 C# 程式中處理 PDF 更加輕鬆。

如何使用 C# 繼承

  1. 建立一個新的 C# 主控台專案

  2. 建立一個帶有一些方法的基類。

  3. 撰寫一個新的衍生類別並繼承基類。

  4. 呼叫在基類中可用的函數/方法。

  5. 處理操作並釋放物件。

C# 中的繼承:概述

物件導向程式設計中的一個關鍵概念 (物件導向程式設計) 是 繼承,它允許一個類別 (派生類別或子類別) 繼承另一個類別的屬性和特徵 (基類或超類)在 C# 中,繼承是通過將基類名稱放在冒號後面來實現的: (冒號) 符號。

單繼承

在 C# 中,一個類別只能繼承自一個基類,因為只支援單繼承。當您希望衍生類別增強單一基類的能力時,您會使用最基本的繼承類型:複合繼承。

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#中的一個類別可以實作一個或多個介面,並且從單一基類繼承。 這允許一個類別繼承介面中描述的方法的實現,從而實現一種多重繼承。

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

The .NET library IronPDF 允許程式設計師使用C#語言建立、編輯和修改PDF文件。IronPDF庫提供各種工具和功能,以實現與PDF檔案相關的各種任務,如從HTML生成PDF、將HTML轉換為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 套件管理器查找 "IronPDF" 套件。在所有與 IronPDF 有關的 NuGet 套件中,我們可以從此列表中選擇並下載所需的套件。

C# 繼承(它對開發者如何工作):圖 2 - 您也可以使用 NuGet 套件管理器安裝 IronPDF 套件。在瀏覽標籤中搜尋套件 "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 報告生成器。首先,我們將處理 Report 基本類別:

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#

現在讓我們構建 PdfReport,一個增加了 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 : 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#

上述範例顯示了 PdfReport 繼承了 Title 屬性和 GenerateReport 函數,這些都是來自基礎類 Report 的現有類。它新增了一個名為 Author 的屬性,並使用自定義邏輯覆寫了 GenerateReport 函數,以進行基於 IronPDF 的 PDF 報告生成。以下是從代碼生成的輸出 PDF。

C# 繼承(開發人員如何使用):圖 3

若要了解將 HTML 字串轉換為 PDF 的程式碼,請參考 這裡.

結論

當與像 IronPDF繼承是一個強大的功能,增強了應用程式開發過程。在這篇文章中,介紹了繼承的基礎知識以及如何將這個概念與IronPDF整合的實用操作方法。

開發層次結構類別結構可以產生模組化和結構良好的代碼庫。當您開發繼承其基類廣泛功能但適用於特定任務的類別時,代碼擴展和可重用性的優勢變得明顯。這些好處在整合IronPDF時得到提高,為在C#應用程式中管理PDF文檔提供了流暢的解決方案。

IronPDF的$749 輕量包包含永久許可、升級選項和長達一年的軟體支持。在帶有水印的試用期內,用戶可以在真實應用設置中評估該產品。要了解更多有關IronPDF的價值、許可和試用版的信息,請訪問 授權頁面. 訪問官方 網站 熟悉其他 Iron Software 產品。

< 上一頁
C# 程式碼檢查工具(其運作方式對於開發者)
下一個 >
C# 隨機整數(開發者如何使用)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >