.NET 帮助

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

发布 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 */ }
Friend Class Animal
End Class
Friend Class Dog
	Inherits Animal

End Class
VB   C#

分层继承

共用一个基类的几个类在分层继承方案中被继承。 其中一个基于单个类的类由多个派生类继承。 根据每个派生类的用途,它们还可能具有其他独特的特征。

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
VB   C#

多级继承

类在多级继承中既是基类又是派生类。 因此,形成了一个继承链,每个类都对其前辈的特性进行了扩展。

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
VB   C#

接口继承

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
VB   C#

抽象类和方法

在 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
VB   C#

以上只是 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");
    }
}
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
VB   C#

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");
    }
}
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
VB   C#

现在让我们构建 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
VB   C#

上例显示,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 软件产品。

< 前一页
C# 代码检查工具(开发人员如何使用)
下一步 >
C# 随机整数(它对开发人员的工作原理)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >