在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
C#、继承以其对面向对象编程的强大支持而著称(OOP)原则。 这对于编写可扩展和有效的代码至关重要。 本篇文章将探讨 C# 继承的主题,重点是以下内容在现实世界中的用途IronPDF 库是一个功能强大的库,能让 C# 程序更轻松地处理 PDF。
创建一个新的 C# 控制台项目
创建一个带有一些方法的基类。
编写一个新的派生类并继承一个类。
调用基类中可用的函数/方法。
面向对象编程中的一个关键概念(OOP)是继承,它可以让类(子类)借鉴(基类). 在 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.NET、Java、Python 或 Node js 是增强应用程序开发流程的强大功能。 继承的基础已在这篇文章中介绍,同时还提供了将这一想法与 IronPDF 整合的实用方法。
分层类结构的开发可形成模块化和结构良好的代码库。 当您开发的类继承了基类的广泛功能,但又能满足特定任务的需要时,代码扩展和可重用性的优势就显而易见了。 在集成 IronPDF 后,这些优势将得到提升,为在您的 C# 应用程序中管理 PDF 文档提供无缝解决方案。
IronPDF 的 $749 Light 包包含一个超级耐用的许可证、重新设计的选择以及延长的编程支持期。 在带水印的试用期内,客户可以在真实的应用设置中对产品进行评估。 要了解有关 IronPDF 的定价、许可和试用版的更多信息,请访问IronPDF许可页面. 访问官方Iron 软件网站熟悉其他 Iron 软件产品。