在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
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 */ }
共用一个基类的几个类在分层继承方案中被继承。 其中一个基于单个类的类由多个派生类继承。 根据每个派生类的用途,它们还可能具有其他独特的特征。
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.NET、Java、Python 或 Node js 是增强应用程序开发流程的强大功能。 继承的基础已在这篇文章中介绍,同时还提供了将这一想法与 IronPDF 整合的实用方法。
分层类结构的开发可形成模块化和结构良好的代码库。 当您开发的类继承了基类的广泛功能,但又能满足特定任务的需要时,代码扩展和可重用性的优势就显而易见了。 在集成 IronPDF 后,这些优势将得到提升,为在您的 C# 应用程序中管理 PDF 文档提供无缝解决方案。
IronPDF 的 $749 Light 包包含一个超级耐用的许可证、重新设计的选择以及延长的编程支持期。 在带水印的试用期内,客户可以在真实的应用设置中对产品进行评估。 要了解有关 IronPDF 的定价、许可和试用版的更多信息,请访问IronPDF许可页面. 访问官方Iron 软件网站熟悉其他 Iron 软件产品。