.NET 帮助

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

发布 2024年三月6日
分享:

简介

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

如何使用 C#继承

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

2.创建一个包含一些方法的基类。

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

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

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

C&num 中的继承:概述

面向对象程序设计的关键思想 (OOP) 是继承,它可以让类 (子类) 借鉴 (基类).在 C# 中,继承是通过将基类名称放在.NET 类之后来实现的: (结肠) 符号。

单一遗传

在 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 IronPDF 允许程序员使用 C# 语言创建、编辑和更改 PDF 文档。IronPDF 库提供了多种工具和功能,可用于完成 PDF 文件的各种任务,如从 HTML 生成 PDF、将 HTML 转换为 PDF、合并或分割 PDF 文档,以及向已有的 PDF 文件添加文本、图像和注释。要了解有关 IronPDF 的更多信息,请参阅 文献资料 page.

安装 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 的更多信息,请参阅 这里.

创建 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 的代码,请参考 这里.

结论

当与 IronPDF在IronPDF中,继承是一项功能强大的特性,可增强应用程序的开发过程。本篇文章介绍了继承的基础,以及如何将这一想法与 IronPDF 集成。

分层类结构的开发可实现模块化和结构良好的代码库。当您开发的类继承了基类的广泛功能,但又能满足特定任务的需要时,代码扩展和可重用性的优势就显而易见了。如果集成了 IronPDF,这些优势就会更加明显,从而为在 C# 应用程序中管理 PDF 文档提供了一个流畅的解决方案。

IronPDF的"$liteLicense "轻量包包含一个超级耐用的许可证、重新设计的选择以及长期的编程支持。在水印测试时间内,客户可以在真正的应用设置中对项目进行评估。要了解有关 IronPDF 的价值、许可和初步形式的更多信息,请访问 许可证页面.访问官方 网站 熟悉其他 Iron 软件产品。

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

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

免费NuGet下载 总下载量: 10,731,156 查看许可证 >