.NET 帮助

内部关键字C#(对开发者的工作原理)

发布 2024年六月6日
分享:

"(《世界人权宣言》)内部关键字在 C# 中,".NET "是一个基本概念,尤其是在大型应用程序中组织代码时。 本教程旨在提供对内部关键字和术语的详细了解。IronPDF 库的功能及其在 C# 开发中的实际应用。

什么是内部关键词?

在 C# 中,内部关键字是一种访问修饰符,用于定义如何访问类、方法、变量和其他成员。 内部关键字的使用说明对类或成员的访问仅限于同一程序集内的代码。

这在您想要控制某些组件的可见性,确保它们不会暴露在所属程序集之外的情况下尤其有用。

内部类示例

让我们从一个简单的例子开始。 假设您正在构建一个软件应用程序,其中包括管理不同的用户界面。 您可能会创建以私有方式处理特定操作的内部类,这些类不会暴露在程序集之外。

internal class UserInterfaceManager
{
    internal static void DisplayUI()
    {
        Console.WriteLine("Displaying User Interface");
    }
}
internal class UserInterfaceManager
{
    internal static void DisplayUI()
    {
        Console.WriteLine("Displaying User Interface");
    }
}
Friend Class UserInterfaceManager
	Friend Shared Sub DisplayUI()
		Console.WriteLine("Displaying User Interface")
	End Sub
End Class
VB   C#

在上例中,UserInterfaceManager 是一个内部类,其方法 DisplayUI(). 这种设置意味着类和方法只能在同一个程序集中访问。 对于试图从不同程序集使用这些工具的任何外部类,它们都是隐藏的。

了解内部成员和方法

字段、属性、方法和事件等内部成员可以使用内部关键字进行标记。 以这种方式标记的内部成员可确保可访问性仅限于同一程序集内,这是处理基于组件的开发的一种安全方法。

内部成员示例

让我们定义一个具有内部成员的类:

internal class AccountProcessor
{
    internal static int accountCount = 0;
    internal void ProcessAccount(string accountName)
    {
        Console.WriteLine($"Processing {accountName}");
    }
}
internal class AccountProcessor
{
    internal static int accountCount = 0;
    internal void ProcessAccount(string accountName)
    {
        Console.WriteLine($"Processing {accountName}");
    }
}
Friend Class AccountProcessor
	Friend Shared accountCount As Integer = 0
	Friend Sub ProcessAccount(ByVal accountName As String)
		Console.WriteLine($"Processing {accountName}")
	End Sub
End Class
VB   C#

这里,"accountCount "是一个内部静态成员,而 "ProcessAccount "是一个内部方法。 这些成员可在同一程序集的任何类中访问,但对任何外部类都是隐藏的。

C#中的访问修饰符

C# 中的访问修饰符定义了如何访问类和类成员。 internal "是这些修饰词之一,其他修饰词还有 "public"、"private "和 "protected"。 每个修改器都具有不同的访问控制功能:

  • *公开***:访问不受限制。
  • Private:仅限于包含类的访问。
  • *受保护***:访问权限仅限于包含类及其派生类。
  • *内部***:访问权限仅限于当前程序集。

默认访问修改器

在 C# 中,如果没有为类成员指定访问修饰符,则默认访问修饰符为 private。 但是,对于顶级类,默认的访问修饰符是 "内部"。 这意味着,如果您没有为类指定访问级别,该类默认为内部类,只能在同一程序集内访问。

将内部修饰词与其他修饰词相结合

内部关键字还可以使用 "protected internal "组合与其他修饰词结合使用。 该访问级别允许同一程序集中的任何代码或其他程序集中的任何派生类访问类或成员。

C#中的访问修饰符

在讨论访问修饰符时,需要注意的是,以私有方式使用访问修饰符有助于有效封装功能。 请记住,"内部 "限制了程序集内部的访问权限,而 "私有 "则确保访问权限仅限于类本身,当 "内部 "无法满足您的特定封装需求时,"私有 "就显得尤为重要。

实际应用:构建图形用户界面

在开发涉及构建图形用户界面的软件时,使用内部关键字可以帮助您有效地管理组件。 例如,您可能有多个表单类,但它们只与同一个程序集相关。 通过将这些类标记为内部类,可以确保它们只用于指定的地方,而不用于其他地方。

表单类示例

internal class MainForm : Form
{
    internal MainForm()
    {
        InitializeComponent();
    }
    internal void ShowForm()
    {
        this.Show();
    }
}
internal class MainForm : Form
{
    internal MainForm()
    {
        InitializeComponent();
    }
    internal void ShowForm()
    {
        this.Show();
    }
}
Friend Class MainForm
	Inherits Form

	Friend Sub New()
		InitializeComponent()
	End Sub
	Friend Sub ShowForm()
		Me.Show()
	End Sub
End Class
VB   C#

在上述代码中,"MainForm "是从基类 "Form "派生出来的内部类。 该表单及其方法不能在程序集之外访问,以保护应用程序用户界面组件的封装性和完整性。

IronPDF 简介

IronPDF 库C# PDF 是一个功能强大的 .NET 库,专为 C# 开发人员设计,用于生成、编辑和处理 PDF 文档。 它为处理 PDF 文件提供了一个简单而强大的解决方案,利用了HTML 转换为 PDF 示例能力。

该库利用基于 Chrome 浏览器的渲染引擎,确保转换过程中的像素精确度,将 HTML、CSS、JavaScript 和图像等网络技术翻译成高质量的 PDF 文档。

在C#中使用IronPDF与Internal关键字

在使用内部关键字的 C# 项目中集成 IronPDF 可以增强应用程序的模块性和安全性。 通过利用内部关键字,您可以将对 PDF 功能某些部分的访问限制在程序集内部,确保关键组件不会不必要地暴露给外部使用。

代码示例:生成和编辑 PDF

下面是一个示例,我们使用 IronPDF 从 HTML 内容生成 PDF,并将此功能封装在一个内部类中,以确保只能在程序集内访问:

using IronPdf;
using System;
internal class PdfManager
{
    internal static void CreatePdfFromHtml(string htmlContent, string filePath)
    {
        // Create a new PDF document
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(filePath);
        // Output the location of the new PDF
        Console.WriteLine($"PDF created successfully at: {filePath}");
    }
}
public class Program
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Example HTML content
        string htmlContent = "<h1>Welcome to IronPDF</h1><p>This is a PDF generated from HTML using IronPDF.</p>";
        string filePath = "example.pdf";
        // Creating PDF from HTML content
        PdfManager.CreatePdfFromHtml(htmlContent, filePath);
    }
}
using IronPdf;
using System;
internal class PdfManager
{
    internal static void CreatePdfFromHtml(string htmlContent, string filePath)
    {
        // Create a new PDF document
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(filePath);
        // Output the location of the new PDF
        Console.WriteLine($"PDF created successfully at: {filePath}");
    }
}
public class Program
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Example HTML content
        string htmlContent = "<h1>Welcome to IronPDF</h1><p>This is a PDF generated from HTML using IronPDF.</p>";
        string filePath = "example.pdf";
        // Creating PDF from HTML content
        PdfManager.CreatePdfFromHtml(htmlContent, filePath);
    }
}
Imports IronPdf
Imports System
Friend Class PdfManager
	Friend Shared Sub CreatePdfFromHtml(ByVal htmlContent As String, ByVal filePath As String)
		' Create a new PDF document
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		pdf.SaveAs(filePath)
		' Output the location of the new PDF
		Console.WriteLine($"PDF created successfully at: {filePath}")
	End Sub
End Class
Public Class Program
	Public Shared Sub Main()
		License.LicenseKey = "License-Key"
		' Example HTML content
		Dim htmlContent As String = "<h1>Welcome to IronPDF</h1><p>This is a PDF generated from HTML using IronPDF.</p>"
		Dim filePath As String = "example.pdf"
		' Creating PDF from HTML content
		PdfManager.CreatePdfFromHtml(htmlContent, filePath)
	End Sub
End Class
VB   C#

内部关键字 C#(如何为开发人员工作):图 1

在本例中,"PdfManager "类被标记为内部关键字,从而限制了其在同一程序集中的可访问性。 该类有一个静态方法 CreatePdfFromHtml,它以 HTML 内容和文件路径为参数,使用 IronPDF 从 HTML 生成 PDF,并将其保存到指定路径。 程序 "类中的 "Main "方法是应用程序的入口点,它调用内部方法生成 PDF。

结论

内部关键字 C#(如何为开发人员工作):图 2

理解并有效使用内部关键字对于 C# 开发人员来说至关重要,尤其是那些参与具有多个组件的大型项目的开发人员。 它允许您保护组件,只公开必要的内容,保持代码库的整洁和可管理性。

这种方法不仅能保证应用程序内部结构的安全,还能简化软件的维护和可扩展性。 IronPDF 提供一个免费试用机会起价 749 美元。

< 前一页
C# Lambda 表达式(开发人员如何使用)
下一步 >
C# Pair 类(开发人员如何使用)

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

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