Warum macht man eine Methode in C# internal und nicht public?

... komplette Frage anzeigen

3 Antworten

Alle Zugriffsmodifizierer (in jeder OO-Sprache) haben ihren Sinn, den es zu begreifen gilt.

Das Interface einer Klasse (die öffentlichen Methoden und Eigenschaften) soll gerade die Funktionen nach außen zur Verfügung stellen, die für die Verwendung gebraucht werden. Dies sollten in der Regel weniger als zwei Handvoll sein, sonst hat man ein falsches Design gewählt.

"Internal" verwendet man nur, wenn innerhalb desselben Namespaces im selben Projekt eine Hilfsklasse existiert, die Modifikationen an der eigentlichen Klasse vornimmt und dabei Zugriff auf geschützte Member braucht.

Antwort bewerten Vielen Dank für Deine Bewertung

Eine Public Methode kann von einem externen Programm oder Assembly angesteuert werden. Also wenn du beispielsweise über "Verweise" eine externe DLL einfügst, kannst du dann diese Method ausführen. Das geht bei Internal nicht. Eine Internal Method kannst du nur von derselben Assembly (bzw. Projekt) ansteuern in der du dich befindest.

Interne Methoden oder Eingehschaften können einfach ausgedrückt nicht von außen angesteuert werden.

Hoffe es war verständlich ;)

Antwort bewerten Vielen Dank für Deine Bewertung

Das internal Schlüsselwort sagt aus das die Methode nur innerhalb der selben Namespace verwendet werden darf. Das heisst es ist ein zwischen ding zwischen public und private. Man setzt Sachen generell nur auf public wenn man wirklich will das man von aussen drauf zugreifen kann. Solltest du aber sowieso nicht mit anderen an diesem Projekt arbeiten ist es ok erstmal alles auf Public zu setzen da du so auf die wenigsten sichtbarkeitsfehler stoßen wirst. Das ist aber nicht der eigentlich Richtige Weg!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von EightSix
18.05.2016, 18:50

Der 1. Satz ist falsch. Man kann nur innerhalb der selben Assembly auf internal gekennzeichnete Methoden/Klassen/... zugreifen.

0