.NET 帮助

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

发布 2024年二月18日
分享:

简介

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

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

1.创建一个 C# 项目。

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

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

4.在程序集层面组织代码

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

6.编译代码

了解内部访问修改器

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

在 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.

// 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 中访问。

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

IronPDF

使用 C# 编程语言 IronPDF 是一个.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 的更多信息,请参阅 这里.

请看下面的情况:

// 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);
    }
}
' Assembly A (PDFHandlingLibrary)
Friend Class PdfProcessor
	Friend Sub AddWatermark(ByVal pdfDocument As IronPdf.PdfDocument, ByVal watermarkText As String)
		' Implementation details for adding a watermark using IronPDF
	End Sub
	Friend Function MergePdfDocuments(ByVal pdfDocuments As IEnumerable(Of IronPdf.PdfDocument)) As IronPdf.PdfDocument
		' Implementation details for merging PDF documents using IronPDF
		Return mergedPdfDocument
	End Function
End Class
' Assembly B (MainApplication)
Public Class MainClass
	Private Sub ProcessPdfDocuments()
	Dim Renderer = New IronPdf.HtmlToPdf()
		Dim 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)
	End Sub
End Class
VB   C#

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

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

结论

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

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

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

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

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