Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.09.17 11:45 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18704
Erhaltene Danke: 1621

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 13.09.17 12:58 
internal beschränkt den Zugriff auf die gleiche Assembly. Das könnte man in Delphi höchstens mit den Packages vergleichen, wenn man diese denn zur Laufzeit verwendet, aber dafür gibt es kein vergleichbares Konzept. Deshalb würde hier public am ehesten dem entsprechen. Denn ohne Laufzeitpackages gibt es ja nur eine Exe bzw. DLL, die auf diese Klassen zugreifen kann.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.09.17 13:06 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4424
Erhaltene Danke: 903


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 13.09.17 13:28 
Weil es im allgemeinen näher an internal ist als private?
Im speziellen Fall, also je nachdem was du erreichen willst was nur ähnlich der verfügbaren Sichtbarkeiten ist, wäre die Antwort natürlich "kommt drauf an".

Zitat:
Wie würde sich das nun auswirken, wenn die innere Klasse in C# private gesetzt werden würde? Gäbe es da einen nennenswerten Unterschied zum Modifier internal? Und wenn ja, welchen?


Public Member einer privaten inner class sind nur für die umgebende Klasse erreichbar. Public Member einer internal inner class sind für alle Klassen in der Assembly erreichbar.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.09.17 13:52 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4424
Erhaltene Danke: 903


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 13.09.17 14:40 
Modifier = private

Das ist eigentlich ein ziemlich übliches Factory/Extension Pattern.
Konkretes Beispiel das ich kürzlich hatte :

In Microsoft.Owin kann man ein eigenes Filesystem implementieren. Dazu möchte Owin das man ein IFileSystem Interface implementiert und über dieses IFileSystem kommt man dann an IFileInfo Klassen zur Beschreibung der Files des Filesystems. In der Implementierung ist dann ganz natürlich die konkrete IFileInfo Implementierung eine private Klasse der konkreten IFileSystem Implementierung.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.09.17 14:58 
- Nachträglich durch die Entwickler-Ecke gelöscht -
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 127
Erhaltene Danke: 23

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mi 13.09.17 16:23 
Hallo,

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Dann ist mein Vorhaben garnicht so verkehrt. Was internal angeht, muss ich mir nochmal anschauen. Gut dass ich nachgefragt habe.


stelle dir vor dein Programm würde nicht alleine laufen, sondern es wäre eine Bibliothek (also quasi DLL statt EXE). Dann würdest du eine internal Klasse nur in deiner Bilbiothek nutzen können (für alle (internen) Objekte aus deiner Bibliothe wäre sie public). Definierst du die Klasse hingegen als public dann kann sie nicht nur von den Objekten aus deiner Bibliothek verwendet werden, sondern auch von denen aus dem Programm, dass wiederum deine Bibliothek verwendet. Sie wäre also "Programmübergreifend" public.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.09.17 17:16 
- Nachträglich durch die Entwickler-Ecke gelöscht -