Entwickler-Ecke
C# - Die Sprache - Wie deklariert man eine unter Funktion in der Funktion
Baumunk - Fr 24.11.06 09:35
Titel: Wie deklariert man eine unter Funktion in der Funktion
Hallo,
Wie soll es möglich sein in der Funktion noch eine oder mehrere Interne Funktionen deklarieren?
Da ist beispiel aus Delphi:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Function GetInteger (Value : String) : Integer;
Function UnterFunktion (Var Value : String) : Boolend; Begin .... End;
Begin .... If UnterFunktion (Value) Then ... End; |
Voraus danke.
Delete - Fr 24.11.06 10:17
das geht nicht und macht auch wenig Sinn.
JüTho - Fr 24.11.06 12:32
MagicAndre1981 hat folgendes geschrieben: |
das geht nicht und macht auch wenig Sinn. |
Teil 1 dieser Antwort bestätige ich. Es geht nicht anders, als innerhalb derselben Klasse weitere Methoden zu nutzen. Durch
#region/endregion kann man das trotzdem übersichtlich unterbringen.
Zum zweiten Teil habe ich eine ausführliche Diskussion über Vor- und Nachteile z.B. über
Verschachtelte Function [
http://www.delphipraxis.net/topic90444_verschachtelte+function.html] gelesen. Auch dazu bin ich der Meinung: nicht ideologisch, sondern pragmatisch handeln. Jürgen
Robert_G - Mo 27.11.06 22:28
MagicAndre1981 hat folgendes geschrieben: |
das geht nicht und macht auch wenig Sinn. |
Nicht immer gleich "iss nich" schreien. ;)
Mein ganz besonderer Liebling, Delegates und speziell: Anonyme Methoden wären eine Möglichkeit:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| class Program { static int HasNestedFunction(int input) { Action<int> addToInput = delegate(int value) { input += value; };
addToInput(1); addToInput(2);
return input; }
static void Main(string[] args) { Console.WriteLine(HasNestedFunction(1)); } } |
Delete - Mo 27.11.06 23:08
ich weiß, dass es über Delegates irgendwie geht, aber so richtig rund ist das nicht :?
Robert_G - Mo 27.11.06 23:17
MagicAndre1981 hat folgendes geschrieben: |
ich weiß, dass es über Delegates irgendwie geht, aber so richtig rund ist das nicht :? |
Ist sogar viel schnieker als es nested methods in Delphi waren.
Nested Methods ließen sich nur indirekt dafür missbrauchen um bei einem callback mit fester Signatur Zugriff auf lokale Variablen zu haben.
Bei .Net Delegates ist das problemlos möglich, anonyme Methoden sind sogar genau dafür da. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 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!