在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
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# 中的一些應用案例。 程式碼基礎中預期的靈活性、類別之間的關係及設計目標皆會影響所選擇的方法。
.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");
}
}
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 功能頁面.
讓我們透過運用繼承和 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 繼承自現有類別的基類 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 產品。