.NET 帮助

C# 继承(它是如何为开发人员工作的)

Chipego
奇佩戈-卡琳达
2024年三月6日
分享:

介绍

C#、继承以其对面向对象编程的强大支持而著称(OOP)原则。 这对于编写可扩展和有效的代码至关重要。 本篇文章将探讨 C# 继承的主题,重点是以下内容在现实世界中的用途IronPDF 库是一个功能强大的库,能让 C# 程序更轻松地处理 PDF。

如何使用 C# 和 num;继承

  1. 创建一个新的 C# 控制台项目

  2. 创建一个带有一些方法的基类。

  3. 编写一个新的派生类并继承一个类。

  4. 调用基类中可用的函数/方法。

  5. 处理操作和处置对象。

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# 中继承的一些应用。 代码库中预期的灵活程度、类之间的连接以及设计目标都会影响所选择的方法。

IronPDF

.NET 库IronPDF该工具允许程序员使用 C# 语言创建、编辑和更改 PDF 文档。 IronPDF 库提供了多种工具和功能,可用于执行 PDF 文件的各种任务,如从 HTML 生成 PDF、将 HTML 转换为 PDF、合并或拆分 PDF 文档,以及向现有 PDF 添加文本、图像和注释。 要了解有关 IronPDF 的更多信息,请参阅IronPDF 文档.

安装 IronPDF

获取 IronPDF 库; 即将发布的补丁需要翻译。 为此,请在软件包管理器中输入以下代码:

Install-Package IronPDF 
//or 
dotnet add package IronPdf

C# 继承(如何为开发人员工作):图 1 - 使用软件包管理器控制台安装 IronPDF 软件包,并输入以下命令:"Install-Package IronPDF" 或 "dotnet add package IronPdf"。

另一种方法是使用 NuGet 软件包管理器查找软件包 "IronPDF"。 在所有与IronPDF相关的NuGet包中,我们可以从这个列表中选择并下载所需的包。

C# 继承(如何为开发人员服务):图 2 - 您也可以使用 NuGet 软件包管理器安装 IronPDF 软件包。 在浏览标签中搜索包 ironpdf,然后选择并安装最新版本的 IronPDF。

继承类中的 IronPDF

我们创建了一个名为 IronPDF 的功能丰富的库,使用 C# 处理 PDF 文档变得更加容易。 通过将 IronPDF 与继承类集成,您可以改进应用程序的功能,轻松创建、处理和更多 PDF。

IronPDF 继承的优势

  • 有组织的代码组织:通过建立类的层次结构,继承有助于促进有序的代码组织。 您可以通过 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功能页面.

创建 PDF 报告生成器

让我们将这些想法付诸实践,利用继承和 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 输出。

C# 继承(如何为开发人员工作):图 3

要了解将 HTML 字符串转换为 PDF 的代码,请参阅HTML 转 PDF 示例.

结论

与以下库配对时IronPDF.NET、Java、Python 或 Node js 是增强应用程序开发流程的强大功能。 继承的基础已在这篇文章中介绍,同时还提供了将这一想法与 IronPDF 整合的实用方法。

分层类结构的开发可形成模块化和结构良好的代码库。 当您开发的类继承了基类的广泛功能,但又能满足特定任务的需要时,代码扩展和可重用性的优势就显而易见了。 在集成 IronPDF 后,这些优势将得到提升,为在您的 C# 应用程序中管理 PDF 文档提供无缝解决方案。

IronPDF 的 $749 Light 包包含一个超级耐用的许可证、重新设计的选择以及延长的编程支持期。 在带水印的试用期内,客户可以在真实的应用设置中对产品进行评估。 要了解有关 IronPDF 的定价、许可和试用版的更多信息,请访问IronPDF许可页面. 访问官方Iron 软件网站熟悉其他 Iron 软件产品。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
C# 代码检查工具(开发人员如何使用)
下一步 >
C# 随机整数(它对开发人员的工作原理)