Moin
Man könnte an jeden Namen eine 5-stellige Zufallszeichenfolge anhängen. Dann erwischt man mit ziemlicher Sicherheit nie einen bereits vergebenen Namen. Mir ist aber noch niemand begegnet der das macht.
Sehr viele Namen sind doppelt und mehrfach belegt. Das ist auch kein Problem, solange nicht zwei oder mehr Namespaces im Projekt importiert sind. Der Compiler muss dann "raten" was gemeint ist. Die Namespaces könnte man ganz grob als Standardpfade interpretieren. Gibt man einen Typ an, schaut der Compiler in den verschiedenen Namespaces nach einem passenden Eintrag und sucht nach gleichnamigen Deklarationen im aktuellen Projekt. Die Namensvergabe ist vergleichbar mit einer Datei im Verzeichnisbaum. Doppelte Dateinamen können problemlos vorkommen, sind aber nur eindeutig, wenn der vollständige Pfad mit angegeben wird.
Vorab zu prüfen welche Namen schon irgendwo mal verwendet wurden, würde eine zentrale Datenbank aller Namen bedingen und das jeder seinen Krempel da einpflegt. Erstellen zwei Leute parallel neue Programme, könnte es trotzdem zu Duplikaten kommen. Der erste Eintragende gewinnt, der andere darf seinen ganzen Code überarbeiten. Außerdem würde ich sofort die gleiche Gefahr wie bei Internetdomains sehen. Irgendwelche Sammler registrieren "gute" Namen auf sich selbst, obwohl sie sie gar nicht nutzen, parken sie bei sich und bieten sie zum Verkauf an.
Ein Duplikatsklassiker ist TextBox. Das Objekt gibt es im Inventor, in Windows Forms und sicher noch in x anderen Anwendungen. Da man diese Typen nicht umbenennen kann, hilft nur den expliziten Namen zu verwenden, sobald man beide Namespaces ins eigene Projekt importiert hat. Der wäre dann Inventor.TextBox oder System.Windows.Forms.TextBox. Man könnte parallel dazu noch eine Variable TextBox deklarieren, ein Modul, eine Sub, eine Funktion, eine Struktur, eine Konstante usw. Hier sollte der Programmierer einfach versuchen, von vornherein eindeutigere Bezeichnungen zu verwenden.
------------------
MfG
Ralf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP