public/internal/protected/private (mit Hinweis zu file)
Lernen Sie, wie public, internal, protected und private die Sichtbarkeit ändern, und sehen Sie sich Regeln für Vererbung und dieselbe Assembly an. Beachten Sie, dass der file-Gültigkeitsbereich in C# 6 nicht verfügbar ist.
public/internal/protected/private (mit Hinweis zu file) ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.
Überblick über Zugriffsmodifikatoren
Ziel: Wählen Sie die passende Sichtbarkeit.
- public: überall
- internal: dieselbe Assembly
- protected: abgeleitete Klassen
- private: dieselbe Klasse
- file: neuer als C# 6 (nur zur Information)
private und public
Halten Sie Felder private und geben Sie validierte public-Member nach außen frei.
using System;
// private: only inside the class; public: everywhere the class is visible
public class Box
{
private int _width; // hidden storage
public int Width // controlled access
{
get { return _width; }
set { _width = value < 0 ? 0 : value; } // simple guard
}
}
public class Program
{
public static void Main(string[] args)
{
Box b = new Box();
// b._width = -5; // INVALID: private (kept as comment)
b.Width = 10; // OK: public property
Console.WriteLine("Width = " + b.Width);
}
}
protected bei Vererbung
protected ist für Vererbung vorgesehen: Abgeleitete Typen können darauf zugreifen, Außenstehende nicht.
using System;
public class BaseCounter
{
protected int Count; // derived classes can see this
public int Value() { return Count; }
}
public class StepCounter : BaseCounter
{
public void Step() { Count = Count + 1; } // allowed: protected
}
public class Program
{
public static void Main(string[] args)
{
StepCounter sc = new StepCounter();
sc.Step();
// sc.Count = 5; // INVALID from outside (commented)
Console.WriteLine("Value = " + sc.Value());
}
}
internal-Zugriff
internal beschränkt die Sichtbarkeit auf die aktuelle Assembly (Bibliotheks- oder App-Build).
using System;
// internal type: visible only inside this assembly
internal class InternalHelper
{
public static string Ping() { return "pong"; }
}
// public type can use internal from the same assembly
public class UsesInternal
{
public string Call() { return InternalHelper.Ping(); }
}
public class Program
{
public static void Main(string[] args)
{
UsesInternal u = new UsesInternal();
Console.WriteLine(u.Call());
}
}
protected internal
protected internal bedeutet: Zugriff für abgeleitete Typen oder überall innerhalb derselben Assembly.
using System;
public class LibraryBase
{
// Accessible to derived types OR anywhere in the same assembly
protected internal void Touch() { Console.WriteLine("touched"); }
}
public class LibChild : LibraryBase
{
public void Use() { Touch(); } // via inheritance
}
public class Program
{
public static void Main(string[] args)
{
LibChild c = new LibChild();
c.Use();
LibraryBase b = new LibraryBase();
b.Touch(); // same assembly, allowed
}
}
Hinweis zum file-Modifikator und Tipps
Hinweis: Der file-Zugriffsmodifikator wurde in einer neueren C#-Version eingeführt (nicht in C# 6). Verwenden Sie in C# 6 public, internal, protected, private und protected internal.
- Bevorzugen Sie standardmäßig private.
- Verwenden Sie public nur für die API-Oberfläche.
- Verwenden Sie internal, um die Implementierung vor anderen Assemblies zu verbergen.
- Verwenden Sie protected für die Zusammenarbeit zwischen Basis- und abgeleiteten Klassen.
Bedeutung von internal
Zusammenfassung
Zusammenfassung: Wählen Sie die kleinstmögliche erforderliche Sichtbarkeit: private → protected/internal → public. C# 6 enthält den neueren file-Modifikator nicht; verwenden Sie internal, um Elemente auf Assembly-Ebene zu verbergen.
Häufig gestellte Fragen
Ist die Lektion „public/internal/protected/private (mit Hinweis zu file)“ kostenlos?
Ja — der vollständige Text von „public/internal/protected/private (mit Hinweis zu file)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „public/internal/protected/private (mit Hinweis zu file)“?
Lernen Sie, wie public, internal, protected und private die Sichtbarkeit ändern, und sehen Sie sich Regeln für Vererbung und dieselbe Assembly an. Beachten Sie, dass der file-Gültigkeitsbereich in C#… Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.
Wie lange dauert die Lektion „public/internal/protected/private (mit Hinweis zu file)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- public/internal/protected/private (mit Hinweis zu file)
- Namespaces, using-Direktiven und globale Usings (Hinweis)
- Partielle Typen und Dateien