Entwickler-Ecke
C# - Die Sprache - lokale oder doch globale Instanz?!
Max064 - Mo 07.03.11 10:43
Titel: lokale oder doch globale Instanz?!
Hallo,
ich habe in einem Codebeispiel folgendes gefunden:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| public class Test { private myClass inst = null; private Base design = new Base();
public void Run() { myClass inst = design.CreateInstance(); inst.InstanceLoaded += new myClass.InstanceLoadedEvent(_InstanceLoaded); } } |
Wieso wird inst oben erst global für die Klasse und dann zusätzlich lokal in der member deklariert? Was hat das für Auswirkungen bzw. Motivationen?
jaenicke - Mo 07.03.11 11:00
Max064 hat folgendes geschrieben : |
| Was hat das für Auswirkungen |
Dass es nicht funktioniert wie der Quelltext suggeriert. Die eine Variable / Feld hat mit der anderen nichts zu tun, das heißt im privaten Feld steht einfach weiter null.
Max064 - Mo 07.03.11 11:46
Kann ich dann innerhalb der Methode beide Variablen "inst" benutzen? Woher weiß ich dann aber auf welche ich gerade zugreife?
Christian S. - Mo 07.03.11 11:48
Bei einem Namenskonflikt wird im Zweifel die "nähere" Version benutzt, also hier die Variable. Auf das Feld greifst Du dann über this.inst zu.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!