.NET 帮助

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

发布 2024年六月6日
分享:

"(《世界人权宣言》) 内部关键字 是 C# 中的一个基本概念,尤其是在大型应用程序中组织代码时。本教程旨在让您详细了解 C# 的内部关键字和 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&num 中的访问修饰符;

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

  • Public:访问不受限制。
  • Private:仅限于包含类的访问。
  • Protected:访问权限仅限于包含类及其派生类。
  • Internal:仅限当前程序集访问。

默认访问修改器

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

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

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

C&num 中的访问修饰符;

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

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

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

表单类示例

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

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

在 C&num 中使用 IronPDF 内部关键字;

在使用内部关键字的 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);
    }
}z
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);
    }
}z
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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'z
VB   C#

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

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

结论

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

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

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

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

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

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