Entwickler-Ecke

C# - Die Sprache - Delegates Frage


developer33 - Mo 05.07.10 19:08
Titel: Delegates Frage
Ich habe hier eine Prüfungsfrage und stehe irgendwie auf dem Schlauch.
Hat jemand eine Idee?

Definieren Sie einen Delegatentyp XYZHandler so, dass eine Variable von diesem Typ z.B.
auf die Methode
int[] foo (string str, bool b) verweisen kann.


Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Mo 05.07.2010 um 19:14
Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Mo 05.07.10 19:18

Hallo und :welcome:!

Du musst doch nur noch ein public delegate und den Namen davor schreiben und fertig is'. Oder habe ich die Frage falsch verstanden? :gruebel:

Grüße
Christian

P.S.: "public" natürlich nur, wenn der Delegate auch public sein soll ;-)


developer33 - Mo 05.07.10 19:28

Also so wie hier?

C#-Quelltext
1:
delegate int[] XYZHandler (string str, bool b)                    


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Mo 05.07.10 19:30

Probier's doch einfach aus :nixweiss:


developer33 - Mo 05.07.10 19:43

Danke :-)
noch eine Frage die uns nicht ganz klar ist

Gegeben seien die Deklarationen

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
class C {
delegate object D1(string);
delegate string D2(object);
public static void m1(string str){...};
public object m2(string str){...};
public static int[] m3(string str){...};
public static object m4(object o){...};
public static string m5(string str){...};
}

Welche der folgenden Methoden m1 bis m4 sind mit D1, bzw. D2 verträglich? Begründen Sie!

+ | Mit D1 (Begründung) | Mit D2 (Begründung)
======================================================
m1 |

m2 |

m3 |

m4 |

m5 |

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Mo 05.07.10 19:52

Da musst Du Dir angucken, welchen Rückgabewert und welchen Paramater die Methode bzw. der Delegate hat. Die müssen zuweisungskompatibel sein. Du kannst ja z.B. einen String einem Objekt zuweisen, andersrum geht es nicht.

Hier gibt's noch eine Erklärung mit Beispielcode: http://msdn.microsoft.com/en-us/library/ms173174(VS.80).aspx


Yogu - Mo 05.07.10 21:58

user profile icondeveloper33 hat folgendes geschrieben:

C#-Quelltext
 
4:
5:
6:
7:
8:
/* ... */
public static void m1(string str){...};
public object m2(string str){...};
public static int[] m3(string str){...};
public static object m4(object o){...};
public static string m5(string str){...};

Wer hat denn die Aufgabenstellung formuliert? :gruebel:


developer33 - Mo 05.07.10 22:31

Ein Prof der informatik


Christian S. - Mo 05.07.10 22:42

Für die Aufgabenstellung ist das Semikolon völlig irrelevant und auch Profs machen Fehler :nixweiss:


developer33 - Di 06.07.10 14:59

Ich habe noch eine Frage..
Ein entfernter Methodenaufruf (remote method call) soll genau so wirken wie ein lokaler.
Welche Aufgaben muss die Infrastruktur im Hintergrund erfüllen, damit dies möglich wird?
Erläutern Sie anhand des Daten, die vom Client zum Server und zurück übertragen werden.


Christian S. - Di 06.07.10 15:02

Hallo!

Das passt weder zu diesem Thema, noch in die Sparte ;-) Bitte erstelle für die neue Frage daher auch ein neues Thema in der richtigen Sparte. Danke! :-)

Grüße
Christian