在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
C# 的主要特點之一,繼承,廣為人知以其對於物件導向程式設計的強大支援(物件導向程式設計)原則。 這對於編寫可擴展且有效的程式碼至關重要。 這篇文章將探討 C# 的繼承主題,並重點強調其在現實世界中的應用。IronPDF 庫一個強大的庫,使在 C# 程式中處理 PDF 更加輕鬆。
建立一個新的 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# 中的一些應用案例。 程式碼基礎中預期的靈活性、類別之間的關係及設計目標皆會影響所選擇的方法。
.NET 庫IronPDF允許程式設計師使用 C# 語言創建、編輯和修改 PDF 文件。 IronPDF 庫提供多種工具和功能,支持與 PDF 文件相關的各種任務,例如從 HTML 生成 PDF、將 HTML 轉換為 PDF、合併或拆分 PDF 文檔,以及向現有的 PDF 添加文本、圖像和註釋。 如需了解有關 IronPDF 的更多資訊,請參閱IronPDF 文件說明.
獲取IronPDF庫; 即將到來的補丁需要它。 要做到這一點,請在套件管理器中輸入以下代碼:
Install-Package IronPDF
//or
dotnet add package IronPdf
另一個選擇是使用 NuGet 套件管理器查找「IronPDF」套件。 在與IronPDF相關的所有NuGet套件中,我們可以從此列表中選擇並下載所需的套件。
一個功能豐富的庫稱為 IronPDF,旨在簡化在 C# 中處理 PDF 文件的流程。 通過將 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");
}
}
IronPdfDocument 是一個改進範例,其來源自 PdfDocument。 此類別設計為便於與IronPDF一起操作; 您可以使用某些屬性或方法輕鬆處理與 PDF 相關的功能。 若需了解有關 IronPDF 功能的更多信息,請參閱IronPDF 功能頁面.
讓我們透過運用繼承和 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。
如需了解將 HTML 字串轉換為 PDF 的程式碼,請參閱HTML 轉換為 PDF 範例.
當與像IronPDF,繼承是一個強大的功能,可以增強應用程式的開發過程。 在這篇文章中覆蓋了繼承的基礎,並提供了將此概念與IronPDF整合的實用指南。
分層類結構的開發導致模組化且結構良好的程式代碼庫。 當您開發繼承其基礎類別廣泛功能但針對特定任務的類別時,代碼擴展和重用的優勢變得明顯。 將 IronPDF 整合後,這些優勢得到增強,為您的 C# 應用程式提供管理 PDF 文件的無縫解決方案。
IronPDF 的 $749 輕量包包含永久許可、升級選項以及一年的程式支援。 在有浮水印的試用期間,客戶可以在真實應用環境中評估該產品。 若要了解更多有關 IronPDF 的定價、授權和試用版本,請造訪IronPDF 授權頁面. 造訪官方Iron Software 網站熟悉其他 Iron Software 產品。