在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
C# 是由微軟開發的現代化、面向對象且類型安全的程式語言。因其多用途性廣受認可,C# 被應用於從桌面軟體到使用 Unity 的遊戲開發等各種應用中。有效的 C# 編程的一個基石是理解存取修飾詞,它們決定了如何在類內部和外部存取類成員。
C# 中的存取修飾詞是用於成員聲明中的關鍵字,用來控制它們從代碼的其他部分存取的可見性。最常用的存取修飾詞是 public
、private
和 protected
,每個都在保障數據完整性和面向對象編程的封裝原則方面起著獨特的作用。
對初學者來說,掌握存取修飾詞的概念,特別是 在 C# 程式設計中,protected
,這是重要的。這些修飾符不僅有助於定義類與外部世界的接口,而且在繼承中也起著重要作用——這是面向對象編程的一個基本概念。理解protected
的工作原理,與其他修飾符如private protected
和protected internal
協同工作,是構建健壯且可維護的C#應用程序的關鍵。
C# 中的存取修飾符是設置類成員可訪問級別的關鍵字。 (如方法、屬性和變數) 這些修飾符控制著類成員的存取位置和方式,在實現面向對象編程中的封裝時起著關鍵作用。
C# 提供了幾種訪問修飾符,每種修飾符都針對特定的情況設計:
public
修飾符允許在同一專案中或參考該專案的任何其他代碼中訪問類成員。這是最不限制的修飾符。private
修飾符僅允許在同一類中訪問類成員。這是最限制的修飾符,對於隱藏對象的內部狀態至關重要。protected
訪問修飾符允許在其類及任何衍生類中訪問類成員。這在繼承情況中特別有用。internal
修飾符的成員在同一程序集內可訪問,但其他程序集不可訪問。了解這些基本訪問修飾符是掌握 C# 中複雜概念的基礎,比如繼承和多態,這些概念在控制類的訪問權限時變得至關重要。
protected
修飾符在C#中的物件導向程式設計中是一個基本概念。它允許一個類別的成員在其本身的類別內以及從它衍生出的類別中被訪問。這種訪問級別在您想要允許擴展功能的同時,將這些成員對程式的其他部分隱藏時,顯得尤為重要。
受保護成員在繼承中扮演著重要角色。它們在聲明它們的同一類別以及從包含類別派生的其他類別中可存取。這表示如果您有一個具有受保護成員的基類,任何繼承自這個基類的類別都可以存取該成員。然而,對於任何未包含在此繼承鏈中的其他類別而言,這個成員都是無法存取的。
例如,考慮一個具有受保護方法StartEngine
的Vehicle
類別。()此方法可以在任何擴展 Vehicle
的類中調用,例如 Car
或 Truck
類,允許這些派生類利用通用邏輯,同時保持封裝性。
public class Vehicle
{
protected void StartEngine()
{
// Engine start logic
}
}
public class Car : Vehicle
{
public void Drive()
{
StartEngine(); // Accessing the protected method
// Additional driving logic
}
}
public class Vehicle
{
protected void StartEngine()
{
// Engine start logic
}
}
public class Car : Vehicle
{
public void Drive()
{
StartEngine(); // Accessing the protected method
// Additional driving logic
}
}
Public Class Vehicle
Protected Sub StartEngine()
' Engine start logic
End Sub
End Class
Public Class Car
Inherits Vehicle
Public Sub Drive()
StartEngine() ' Accessing the protected method
' Additional driving logic
End Sub
End Class
在這個例子中,派生自Vehicle
父類別的Car
類別可以存取StartEngine
方法,而其他沒有繼承自Vehicle
的類別則無法存取此方法。這展示了如何使用受保護修飾符來分層組織和保護類別功能。
在 C# 中,protected internal
存取修饰符是 protected
和 internal
的组合。这意味着被标记为 protected internal
的类成员可以从同一程序集的所有类(包括派生类)以及其他程序集中的派生类访问。与 protected
修饰符相比,它提供了更广泛的访问范围,因为它不仅限于包含类及其派生类型。
Protected internal 特別適用於當您希望將某些類成員暴露給同一個程序集內的其他類,但同時允許這些成員在位於不同程序集的派生類中進行訪問。此修飾符常用於大型項目和庫中,當您需要更精細地控制應用程式不同部分之間的成員可訪性時。
另一方面,private protected
修飾符更加嚴格。private protected
成員只能在其包含的類或位於同一程序集中的派生類中存取。這是 private
和 protected
的組合,用於嚴格限制成員僅在相同的程序集內存取。
public class BaseClass
{
protected internal string ProtectedInternalMethod()
{
// Method logic
}
private protected string PrivateProtectedMethod()
{
// Method logic
}
}
public class DerivedClass : BaseClass
{
void AccessMethods()
{
ProtectedInternalMethod(); // Accessible
PrivateProtectedMethod(); // Accessible only if DerivedClass is in the same assembly
}
}
public class BaseClass
{
protected internal string ProtectedInternalMethod()
{
// Method logic
}
private protected string PrivateProtectedMethod()
{
// Method logic
}
}
public class DerivedClass : BaseClass
{
void AccessMethods()
{
ProtectedInternalMethod(); // Accessible
PrivateProtectedMethod(); // Accessible only if DerivedClass is in the same assembly
}
}
Public Class BaseClass
Protected Friend Function ProtectedInternalMethod() As String
' Method logic
End Function
Private Protected Function PrivateProtectedMethod() As String
' Method logic
End Function
End Class
Public Class DerivedClass
Inherits BaseClass
Private Sub AccessMethods()
ProtectedInternalMethod() ' Accessible
PrivateProtectedMethod() ' Accessible only if DerivedClass is in the same assembly
End Sub
End Class
在此範例中,DerivedClass 可以存取 ProtectedInternalMethod 和 PrivateProtectedMethod。然而,如果 DerivedClass 位於不同的組件中,則無法存取 PrivateProtectedMethod。
IronPDF 是一個在 C# 中廣受歡迎的庫,用於創建、編輯和導出 PDF 文件。這是一個強大的工具,展示了 C# 概念如類、對象和訪問修飾符的實際應用。了解訪問修飾符如 protected 功能在使用諸如 IronPDF 這樣的複雜庫時至關重要。
IronPDF 的亮點在於它能夠進行轉換 HTML轉PDF, 同時保留佈局和樣式。這對於從基於網路的內容(如報告、發票和文件)生成PDF特別有用。HTML檔案、URL和HTML字串都可以轉換為PDF檔案。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
這是 IronPDF 創建的範例 HTML 字串生成的 PDF 文件:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>");
// Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf");
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>");
// Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>C# Generate PDF Document using IronPDF!</h1>")
' Export to a file or Stream
pdf.SaveAs("HtmlToPdf.pdf")
這是輸出 PDF 文件:
在像 IronPDF 這樣的庫中,protected 存取修飾符在結構化代碼中扮演著重要角色。它允許 IronPDF 的開發人員控制其他開發人員如何與該庫互動。例如,他們可能在基類中使用 protected 方法或屬性,以允許在衍生類中進行擴展和自定義,而不將內部邏輯暴露給公共 API。
在本教程中,我們探討了 C# 中 protected 存取修飾詞的細節,這是物件導向程式設計的一個基本方面。我們首先了解了存取修飾詞的基本概念及其在定義類成員範圍和可存取性的作用。我們深入探討了 protected、protected internal 和 private protected 的具體情況,它們在類成員存取控制領域中各自具有獨特的用途。
IronPDF 提供了 免費試用 讓開發人員探索其功能,使其易於實驗並實際看到其好處。要持續使用並訪問所有功能, 授權 從 $749 開始,為您在 C# 中提供全面的 PDF 操作解決方案。