.NET 帮助

C# 内部实现(开发者如何使用)

发布 2024年二月18日
分享:

介绍

在管理静态 void main 程序内窗体类、方法和属性的可见性时,访问修饰符在 C# 组件式开发编程语言中至关重要。 在构建模块化和可维护的图形用户界面时,内部访问修饰符是一个非常重要的修饰符。 C# 的理念国内本文将讨论 IronPDF 的几个有用应用程序,IronPDF 是一个管理 PDF 文档的灵活 C# 框架。

如何在基于 C# 组件的开发中使用内部成员

  1. 创建一个 C# 项目。

  2. 理解内部访问修饰符。

  3. 将 "内部 "应用于成员。

  4. 在汇编级别组织代码。

  5. 在同一程序集中使用内部成员。

  6. 编译代码。

了解内部访问修饰符

C# 中的内部关键字/访问修饰符将类型或成员的可见性限制为同一程序集中其他成员的可见性。 这意味着任何类,无论是派生类、方法还是标记为内部的属性,都可以被同一程序集内的其他类型访问,但对程序集外的类型不可用。 这种程度的访问控制对于封装来说是必不可少的,因为它可以让您以私有的方式指定只应在同一程序集内使用的具体实现。

在 C# 中,您可以通过以下方式使用内部修饰符:

内部类

通过使用 internal.C++ 声明一个仅在同一程序集内可用的类。

// Assembly1
internal class InternalClass
{
    // Members of InternalClass
}
// Assembly1
internal class InternalClass
{
    // Members of InternalClass
}
' Assembly1
Friend Class InternalClass
	' Members of InternalClass
End Class
VB   C#

内部类成员

通过内部应用,限制类成员(如字段、属性和方法)在同一程序集中的可见性。

// Assembly1
internal class MyClass
{
    internal static int InternalField;
    internal void InternalMethod() { }
}
// Assembly1
internal class MyClass
{
    internal static int InternalField;
    internal void InternalMethod() { }
}
' Assembly1
Friend Class [MyClass]
	Friend Shared InternalField As Integer
	Friend Sub InternalMethod()
	End Sub
End Class
VB   C#

内部界面

使用内部访问修饰符声明只能在同一程序集内访问的接口。

// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
' Assembly1
Friend Interface IInternalInterface
	' Interface members
End Interface
VB   C#

内部嵌套类

声明一个嵌套类,该类只能在同一程序集内使用 internal.C++.NET 访问。

// Assembly1
public class OuterClass
{
    internal class InternalNestedClass
    {
        // Members of InternalNestedClass
    }
}
// Assembly1
public class OuterClass
{
    internal class InternalNestedClass
    {
        // Members of InternalNestedClass
    }
}
' Assembly1
Public Class OuterClass
	Friend Class InternalNestedClass
		' Members of InternalNestedClass
	End Class
End Class
VB   C#

内部组装

通过在程序集级别应用内部程序集,限制从外部程序集访问整个程序集。

[assembly: InternalsVisibleTo("ExternalAssembly")]
[assembly: InternalsVisibleTo("ExternalAssembly")]
<Assembly: InternalsVisibleTo("ExternalAssembly")>
VB   C#

在开发和测试过程中,可通过使用 InternalsVisibleTo 属性使指定的外部程序集能访问内部访问修改器。

public class MyClassA
{
    internal void MyInternalMethod()
    {
        // Implementation details only accessible within Assembly A
    }
}
// Assembly B
public class MyClassB
{
    void SomeMethod()
    {
        MyClassA myObject = new MyClassA();
        myObject.MyInternalMethod(); // This will result in a compilation error
    }
}
public class MyClassA
{
    internal void MyInternalMethod()
    {
        // Implementation details only accessible within Assembly A
    }
}
// Assembly B
public class MyClassB
{
    void SomeMethod()
    {
        MyClassA myObject = new MyClassA();
        myObject.MyInternalMethod(); // This will result in a compilation error
    }
}
Public Class MyClassA
	Friend Sub MyInternalMethod()
		' Implementation details only accessible within Assembly A
	End Sub
End Class
' Assembly B
Public Class MyClassB
	Private Sub SomeMethod()
		Dim myObject As New MyClassA()
		myObject.MyInternalMethod() ' This will result in a compilation error
	End Sub
End Class
VB   C#

在本例中,"MyInternalMethod "被指定为内部成员,因此只能在程序集 A 中访问。 如果尝试从程序集 B 访问该函数,将出现编译错误。

将受保护的内部访问修饰符和内部访问修饰符结合起来,就会产生受保护的内部访问修饰符。 一名成员(方法、属性或字段)或一种(类、接口或委托)通过受保护的内部复合访问修饰符,派生类型可以在其程序集内部和外部进行访问。 受保护的内部访问级别提供了受保护访问级别和内部访问级别分别提供的可见性之间的平衡。

IronPDF

使用 C# 编程语言、IronPDF 官方网站PDF 是一个 .NET 库,使开发人员能够生成、编辑和修改 PDF 文档。 它提供了一系列工具和功能,可以多种方式与 PDF 文件交互,包括从 HTML 创建 PDF、将 HTML 转换为 PDF、合并或分割 PDF 文档,以及在已有的 PDF 文件中添加注释、文本和照片。

安装 IronPDF

获取 IronPDF 库; 未来需要补丁。 为此,请在软件包管理器中输入以下代码:

Install-Package IronPdf

C# 内部(如何为开发人员工作):图 1 - 安装 IronPDF

使用 NuGet 软件包管理器搜索软件包 "IronPDF "是一个额外的选择。我们可以从这个与 IronPdf 相关的所有 NuGet 软件包列表中选择并下载必要的软件包。

C# 内部(如何为开发人员工作):图 2 - IronPDF 软件包

IronPDF 的功能

  • 将 HTML 转换为 PDF:使用 IronPdf,您可以从任何类型的 HTML 信息(包括文件、URL 和 HTML 代码字符串)创建 PDF 文档。
  • PDF 生成:使用 C# 编程语言,您可以通过编程向 PDF 文档添加文本、图形和其他组件。
  • PDF 操作:IronPDF 提供将 PDF 文件分割为多个文件、将多个 PDF 文档合并为一个文件以及修改已存在的 PDF 文件的功能。
  • PDF 表单:该库允许用户创建和完成 PDF 表单,因此在需要收集和处理表单数据的情况下非常有用。
  • 安全功能:PDF 文档可以使用 IronPDF 进行密码和权限保护及加密。
  • 文本提取:IronPDF 可用于从 PDF 文件中提取文本。

使用 IronPDF 封装 PDF 处理功能

IronPDF 提供了大量生成、修改和处理 PDF 文档的功能。 通过将 PDF 处理代码封装在内部类或方法中,可以将实现细节隐藏在程序集边界之后。 要了解有关 IronPDF 的更多信息,请参阅IronPDF文档.

检查以下情况:

// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
    internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
    {
        // Implementation details for adding a watermark using IronPDF
    }
    internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
    {
        // Implementation details for merging PDF documents using IronPDF
        return mergedPdfDocument;
    }
}
// Assembly B (MainApplication)
public class MainClass
{
    void ProcessPdfDocuments()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
        // Accessing internal methods within the same assembly is allowed
        pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
        IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
    }
}
// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
    internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
    {
        // Implementation details for adding a watermark using IronPDF
    }
    internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
    {
        // Implementation details for merging PDF documents using IronPDF
        return mergedPdfDocument;
    }
}
// Assembly B (MainApplication)
public class MainClass
{
    void ProcessPdfDocuments()
    {
        var Renderer = new IronPdf.HtmlToPdf();
        var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
        // Accessing internal methods within the same assembly is allowed
        pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
        IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

在本例中,程序集 A 的 PdfProcessor 类使用 IronPDF 封装 PDF 处理代码。 由于这些方法被指定为内部方法,因此只有同一程序集的内部成员才能访问这些方法。 程序集 B 的 MainClass 可以轻松使用这些内部函数。 要了解有关 IronPDF 代码的更多信息,请参阅IronPDF HTML 转 PDF 示例.

C# 内部(如何为开发人员工作):图 3 - 输出

结论

最后,C# 内部修改器对程序集内部哪些类型和成员可见提供了强有力的控制。 当与 IronPDF 结合使用时,它有助于创建安全、模块化和可维护的应用程序。 您可以将 IronPDF 相关代码封装在内部类或方法中,从而在抽象性、安全性和可用性之间达成妥协。 在使用像 IronPDF 这样管理 PDF 文档处理等基本功能的库时,特别重要的是要接受封装和有限访问的概念,以便在 C# 应用程序中促进稳定和可扩展的架构。

IronPDF 的"$liteLicense "轻量级捆绑包中包含了非常强大的许可证、重新设计选项和更长的编程支持时间。 在水印测试期间,客户可以在实际应用设置中测试该项目。 了解更多关于IronPDF 许可以了解优点、审批流程和草案形式。 查看Iron Software 网站了解更多信息。

< 前一页
C# 模式匹配表达式(开发者如何使用)
下一步 >
C# LINQ Distinct(开发者指南)

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

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