.NET 幫助

C# 內部結構(開發人員如何運作)

發佈 2024年2月18日
分享:

介紹

在管理靜態 void main 程式中的表單類別、方法和屬性的可見性時,存取修飾符在 C# 組件式開發程式語言中至關重要。 在構建模組化且可維護的圖形用戶界面時,一個相當相關的存取修飾符是 internal。 C#的概念內部本文將討論此內容,以及IronPDF的幾個有用應用,一個靈活的C#框架用於管理PDF文件。

如何在 C# 組件式開發中使用內部成員

  1. 建立一個 C# 專案。

  2. 了解 internal 存取修飾符。

  3. 將「internal」應用於成員。

  4. 在組件層級組織程式碼。

  5. 在同一個組件內使用內部成員。

  6. 編譯代碼。

了解內部存取修飾符

在 C# 中,internal 關鍵字/存取修飾符將類型或成員的可見性限制為同一組件內其他成員。 這意味著任何類別,無論是衍生類別、方法或屬性被標記為 internal 的,都可以被同一組件內的其他類型訪問,但對於組件外的類型則無法訪問。 這種程度的存取控制對於封裝是必不可少的,因為它允許您以私密的方式指定應僅在同一程序集內部使用的實施細節。

在 C# 中,您可以以下列方式使用 internal 修飾符:

內部類別

使用 internal 宣告僅在相同組件內可用的類別。

// 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#

內部類別成員

通過應用 internal 將類成員的可見性限制在相同的程序集內,例如字段、屬性和方法。

// 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#

內部介面

聲明一個只能在相同組件中訪問的介面,方法是使用 internal 訪問修飾符。

// 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#

內部程序集

透過在程序集級別應用internal來限制外部程序集對整個程序集的訪問。

[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 內部被訪問。 如果您嘗試從 Assembly B 存取此功能,將會發生編譯錯誤。

組合 protected 和 internal 存取修飾符會產生 protected internal 存取修飾符。 成員(方法、屬性或欄位)或一種類型(類別、介面或委派)由於有受保護的內部複合存取修飾符,派生類型可以在其組件內外皆可存取。 受保護的內部存取等級提供了受保護和內部存取等級分別給予的可視性之間的平衡。

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 資訊中建立 PDF 文件,包括檔案、URL 和 HTML 程式碼字符串。
  • 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# 的 internal 修飾符提供了對程序集內哪些類型和成員可見性的強大控制。 當與 IronPDF 結合使用時,它有助於創建安全、模塊化和可維護的應用程式。 您可以通過將與IronPDF相關的代碼封裝在內部類或方法中,在抽象、安全性和可用性之間取得平衡。 在使用像 IronPDF 這樣管理關鍵功能如 PDF 文檔處理的庫時,特別重要的是要採用封裝和有限訪問的概念,以促進 C# 應用程式中穩定且可擴展的架構。

IronPDF 的 $749 輕量包中包括非常穩定的許可證、重新設計選項以及更長的程式支援時間。 客戶可以在有浮水印的測試期間,在實際應用環境中測試該項目。 進一步了解IronPDF 授權了解優點、核准流程及草稿形式。 查看Iron Software 網站了解更多。

< 上一頁
C# 模式匹配表达式 (开发人员使用方法)
下一個 >
C# LINQ Distinct(開發人員如何使用)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >