.NET-HILFE

C# Intern (Wie es für Entwickler funktioniert)

Veröffentlicht 18. Februar 2024
Teilen Sie:

Einführung

Bei der Verwaltung der Sichtbarkeit von Formularklassen, Methoden und Eigenschaften innerhalb eines statischen ungültigen Hauptprogramms sind Zugriffsmodifikatoren in der komponentenbasierten Programmiersprache C# unerlässlich. Bei der Erstellung von modularen und wartbaren Anwendungen für grafische Benutzeroberflächen ist ein solcher Zugriffsmodifikator, der sehr wichtig ist, intern. Die Idee von C# praktikant werden in diesem Artikel zusammen mit mehreren nützlichen Anwendungen für IronPDF, einem flexiblen C#-Framework zur Verwaltung von PDF-Dokumenten, besprochen.

Verwendung interner Mitglieder in C# komponentenbasierte Entwicklung

  1. Erstellen Sie ein C#-Projekt.

  2. Verstehen Sie den internen Zugangsmodifikator.

  3. Wenden Sie "intern" auf Mitglieder an.

  4. Organisieren Sie den Code auf der Baugruppenebene.

  5. Verwenden Sie interne Stäbe innerhalb der gleichen Baugruppe.

  6. Kompilieren Sie den Code.

Zum Verständnis des internen Zugangsmodifikators

Der interne Schlüsselwort/Zugriffsmodifikator in C# beschränkt die Sichtbarkeit eines Typs oder Mitglieds auf die Sichtbarkeit anderer Mitglieder innerhalb derselben Assembly. Dies bedeutet, dass auf jede Klasse, sei es eine abgeleitete Klasse, eine Methode oder eine Eigenschaft, die als intern gekennzeichnet ist, von anderen Typen innerhalb derselben Assembly zugegriffen werden kann, aber für Typen außerhalb der Assembly nicht verfügbar ist. Dieser Grad der Zugriffskontrolle ist für die Kapselung unerlässlich, da Sie damit Implementierungsspezifika festlegen können, die ausschließlich innerhalb derselben Assembly auf private Weise verwendet werden sollen.

In C# können Sie den internen Modifikator auf folgende Weise verwenden:

Interne Klasse

Deklarieren einer Klasse, die nur innerhalb der gleichen Baugruppe verfügbar ist, durch Verwendung von 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#

Interne Klassenmitglieder

Begrenzung der Sichtbarkeit von Klassenmitgliedern, wie Felder, Eigenschaften und Methoden, auf dieselbe Assembly durch Anwendung von 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#

Interne Schnittstelle

Deklaration einer Schnittstelle, auf die nur innerhalb der gleichen Assembly mit dem internen Zugriffsmodifikator zugegriffen werden kann.

// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
// Assembly1
internal interface IInternalInterface
{
    // Interface members
}
' Assembly1
Friend Interface IInternalInterface
	' Interface members
End Interface
VB   C#

Interne verschachtelte Klasse

Deklarieren einer verschachtelten Klasse, auf die nur innerhalb derselben Assembly mit internal zugegriffen werden kann.

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

Interne Montage

Einschränkung des Zugriffs auf die gesamte Baugruppe von externen Baugruppen durch Anwendung interner Maßnahmen auf Baugruppenebene.

[assembly: InternalsVisibleTo("ExternalAssembly")]
[assembly: InternalsVisibleTo("ExternalAssembly")]
<Assembly: InternalsVisibleTo("ExternalAssembly")>
VB   C#

Während der Entwicklung und des Testens können die internen Zugriffsmodifikatoren für eine bestimmte externe Baugruppe zugänglich gemacht werden, indem die Eigenschaft "InternalsVisibleTo" verwendet wird.

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#

Da "MyInternalMethod" in diesem Beispiel als internes Mitglied bezeichnet wird, kann nur innerhalb der Baugruppe A auf sie zugegriffen werden. Wenn Sie versuchen, von Baugruppe B aus auf diese Funktion zuzugreifen, tritt ein Kompilierungsfehler auf.

Die Kombination der Modifikatoren für geschützten und internen Zugriff ergibt den Modifikator für geschützten internen Zugriff. Ein Mitglied (methode, Eigenschaft oder Feld) oder ein Typ (klasse, Schnittstelle oder Delegat) kann dank eines geschützten internen Verbundzugriffsmodifikators sowohl innerhalb als auch außerhalb seiner Assembly von abgeleiteten Typen aufgerufen werden. Ein Gleichgewicht zwischen der Sichtbarkeit, die geschützte und interne Zugriffsebenen getrennt gewähren, wird durch die geschützte interne Zugriffsebene geschaffen.

IronPDF

Verwendung der Programmiersprache C#, IronPDF ist eine .NET-Bibliothek, die es Entwicklern ermöglicht, PDF-Dokumente zu erzeugen, zu bearbeiten und zu verändern. Es bietet eine Reihe von Werkzeugen und Funktionen, um mit PDF-Dateien auf vielfältige Weise zu interagieren, einschließlich der Erstellung von PDFs aus HTML, der Konvertierung von HTML in PDF, dem Kombinieren oder Teilen von PDF-Dokumenten und dem Anfügen von Anmerkungen, Text und Fotos an bereits vorhandene PDFs.

IronPDF installieren

Holen Sie sich die IronPDF-Bibliothek; er wird für den künftigen Patch benötigt. Geben Sie den folgenden Code in den Paketmanager ein, um dies zu erreichen:

Install-Package IronPdf

C# Intern (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF installieren

Eine weitere Möglichkeit besteht darin, mit dem NuGet Package Manager nach dem Paket "IronPDF" zu suchen. Wir können das erforderliche Paket aus dieser Liste aller mit IronPDF verbundenen NuGet-Pakete auswählen und herunterladen.

C# Intern (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Paket

Merkmale von IronPDF

  • HTML in PDF konvertieren: Mit IronPDF können Sie PDF-Dokumente aus allen Arten von HTML-Informationen erstellen, einschließlich Dateien, URLs und HTML-Code-Strings.
  • PDF-Erzeugung: Mit der Programmiersprache C# können Sie programmgesteuert Text, Grafiken und andere Komponenten in PDF-Dokumente einfügen.
  • PDF-Bearbeitung: IronPDF bietet die Möglichkeit, eine PDF-Datei in mehrere Dateien aufzuteilen, mehrere PDF-Dokumente in einer einzigen Datei zusammenzufassen und bereits vorhandene PDFs zu verändern.
  • PDF-Formulare: Die Bibliothek ist hilfreich in Situationen, in denen Formulardaten gesammelt und verarbeitet werden müssen, da sie es den Benutzern ermöglicht, PDF-Formulare zu erstellen und auszufüllen.
  • Sicherheitsfunktionen: PDF-Dokumente können mit IronPDF passwort- und berechtigungsgeschützt und verschlüsselt werden.
  • Text-Extraktion: IronPDF kann verwendet werden, um Text aus PDF-Dateien zu extrahieren.

Kapselung der PDF-Verarbeitung mit IronPDF

IronPDF bietet eine breite Palette von Funktionen zur Erstellung, Änderung und Verarbeitung von PDF-Dokumenten. Die Implementierungsdetails können hinter Assemblergrenzen verborgen bleiben, indem der PDF-Verarbeitungscode in interne Klassen oder Methoden eingeschlossen wird. Mehr über IronPDF erfahren Sie unter hier.

Untersuchen Sie die folgende Situation:

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

In diesem Beispiel verwendet die PdfProcessor-Klasse der Assembly A IronPDF, um den PDF-Verarbeitungscode zu kapseln. Da die Methoden als intern bezeichnet werden, können nur interne Mitglieder derselben Baugruppe auf sie zugreifen. Die MainClass von Assembly B kann diese internen Funktionen problemlos nutzen. Weitere Informationen über den IronPDF-Code finden Sie unter hier.

C# Intern (Wie es für Entwickler funktioniert): Abbildung 3 - Ausgabe

Schlussfolgerung

Schließlich bietet der C#-interne Modifikator eine starke Kontrolle darüber, welche Typen und Mitglieder innerhalb einer Assembly sichtbar sind. In Verbindung mit IronPDF hilft es bei der Erstellung sicherer, modularer und wartbarer Anwendungen. Sie können einen Kompromiss zwischen Abstraktion, Sicherheit und Benutzerfreundlichkeit finden, indem Sie IronPDF-bezogenen Code in interne Klassen oder Methoden einschließen. Bei der Arbeit mit Bibliotheken wie IronPDF, die wichtige Funktionen wie die Verarbeitung von PDF-Dokumenten verwalten, ist es besonders wichtig, die Konzepte der Kapselung und des begrenzten Zugriffs zu berücksichtigen, um eine stabile und skalierbare Architektur in Ihren C#-Anwendungen zu fördern.

Eine sehr robuste Lizenz, Redesign-Optionen und eine längere Dauer des Programmiersupports sind in IronPDF's $749 light bundle enthalten. Die Kunden können den Artikel während des Testzeitraums mit Wasserzeichen unter realen Anwendungsbedingungen testen. Klicken Sie auf die link um mehr über die Vorteile von IronPDF, das Genehmigungsverfahren und die Entwurfsform zu erfahren. Sehen Sie sich das an website um mehr über Iron Software zu erfahren.

< PREVIOUS
C# Pattern-Matching-Ausdrücke (So funktioniert es für Entwickler)
NÄCHSTES >
C# LINQ Distinct (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >