在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
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 */ }
Friend 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 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 */ }
Friend 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 //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
在 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
這些只是 C# 中繼承的幾個應用。在代碼庫中的預期靈活程度、類之間的關聯以及設計目標都會影響所選擇的方法。
The .NET library IronPDF 允許程式設計師使用C#語言建立、編輯和修改PDF文件。IronPDF庫提供各種工具和功能,以實現與PDF檔案相關的各種任務,如從HTML生成PDF、將HTML轉換為PDF、合併或拆分PDF文件,以及向現有的PDF中添加文本、圖像和註釋。如需了解更多關於IronPDF的資訊,請參閱 文檔 頁面。
獲取 IronPDF 函式庫;即將到來的補丁需要它。為此,請在軟體包管理器中輸入以下代碼:
Install-Package IronPDF
//or
dotnet add package IronPdf
另一個選項是使用 NuGet 套件管理器查找 "IronPDF" 套件。在所有與 IronPDF 有關的 NuGet 套件中,我們可以從此列表中選擇並下載所需的套件。
一個功能豐富的庫,名為 IronPDF,是為了簡化在 C# 中處理 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
IronPdfDocument 是從 PdfDocument 衍生出的增強範例。此類是為了輕鬆操作 IronPDF 而設計的;您可以使用某些屬性或方法輕鬆處理 PDF 相關功能。欲了解更多有關 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");
}
}
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
現在讓我們構建 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
上述範例顯示了 PdfReport 繼承了 Title 屬性和 GenerateReport 函數,這些都是來自基礎類 Report 的現有類。它新增了一個名為 Author 的屬性,並使用自定義邏輯覆寫了 GenerateReport 函數,以進行基於 IronPDF 的 PDF 報告生成。以下是從代碼生成的輸出 PDF。
若要了解將 HTML 字串轉換為 PDF 的程式碼,請參考 這裡.
當與像 IronPDF繼承是一個強大的功能,增強了應用程式開發過程。在這篇文章中,介紹了繼承的基礎知識以及如何將這個概念與IronPDF整合的實用操作方法。
開發層次結構類別結構可以產生模組化和結構良好的代碼庫。當您開發繼承其基類廣泛功能但適用於特定任務的類別時,代碼擴展和可重用性的優勢變得明顯。這些好處在整合IronPDF時得到提高,為在C#應用程式中管理PDF文檔提供了流暢的解決方案。
IronPDF的$749 輕量包包含永久許可、升級選項和長達一年的軟體支持。在帶有水印的試用期內,用戶可以在真實應用設置中評估該產品。要了解更多有關IronPDF的價值、許可和試用版的信息,請訪問 授權頁面. 訪問官方 網站 熟悉其他 Iron Software 產品。