.NET 幫助

C# 繼承(開發者指南)

Chipego
奇佩戈·卡林达
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 */ }

階層繼承

在層次繼承方案中,多個類別繼承了共同的基礎類別。 這是一個被多個衍生類別繼承的單基類。 根據其用途,每個衍生類可能有其獨特的特徵。

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 */ }

多層繼承

在多層繼承中,一個類既作為基類又作為派生類。 因此,形成了一個繼承鏈,每個類別都在前身的特徵上進行擴展。

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  */ }

介面繼承

在 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
    }
}

抽象類別與方法

在 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);
    }
}

這些只是繼承在 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");
    }
}

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");
    }
}

現在讓我們構建 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
    }
}

上面的範例顯示了 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 產品。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
C# 程式碼檢查工具(其運作方式對於開發者)
下一個 >
C# 隨機整數(開發者如何使用)