.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

.NET 庫IronPDF允許程式設計師使用 C# 語言創建、編輯和修改 PDF 文件。 IronPDF 庫提供多種工具和功能,支持與 PDF 文件相關的各種任務,例如從 HTML 生成 PDF、將 HTML 轉換為 PDF、合併或拆分 PDF 文檔,以及向現有的 PDF 添加文本、圖像和註釋。 如需了解有關 IronPDF 的更多資訊,請參閱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 繼承的優勢

  • 組織化的代碼組織:透過建立類別層級,繼承有助於促進有組織的代碼組織。 您可以創建專門用於處理PDF的類,並通過整合IronPDF來保持整潔、組織良好的代碼庫。
  • 重用程式碼:繼承自基類的類別允許重用程式碼。 如果您正在使用像 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 功能的更多信息,請參閱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 繼承自現有類別的基類 Report 的 Title 屬性和 GenerateReport 函數。 它新增了一個名為 Author 的屬性,並使用自定義邏輯覆蓋了 GenerateReport 函數,以生成基於 IronPDF 的 PDF 報告。 以下是從代碼生成的輸出 PDF。

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

如需了解將 HTML 字串轉換為 PDF 的程式碼,請參閱HTML 轉換為 PDF 範例.

結論

當與像IronPDF,繼承是一個強大的功能,可以增強應用程式的開發過程。 在這篇文章中覆蓋了繼承的基礎,並提供了將此概念與IronPDF整合的實用指南。

分層類結構的開發導致模組化且結構良好的程式代碼庫。 當您開發繼承其基礎類別廣泛功能但針對特定任務的類別時,代碼擴展和重用的優勢變得明顯。 將 IronPDF 整合後,這些優勢得到增強,為您的 C# 應用程式提供管理 PDF 文件的無縫解決方案。

IronPDF 的 $749 輕量包包含永久許可、升級選項以及一年的程式支援。 在有浮水印的試用期間,客戶可以在真實應用環境中評估該產品。 若要了解更多有關 IronPDF 的定價、授權和試用版本,請造訪IronPDF 授權頁面. 造訪官方Iron Software 網站熟悉其他 Iron Software 產品。

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

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

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >