[C#] delegate bool functions

12/29/2012 09:28 theredvex#1
Moin moin,
Nach langer zeit melde ich mich dann mal von den toten zurück :)
Ich habe ein kleines Problem, und zwar möchte ich eine bestimmte Funktion die Bsp. Einen zauber startet überladen.
Code:
Public static void Cast(string spellname)
{
        Casting(spellname)
}
Nun mochte ich aber durch die uberladung noch eine if frage einbauen. Ich habe schon gehört dass man sowas mit Lambda-Abfragen macht. Aber wie genau muss das aussehen? 1. Muss ja eine delegate erstellt werden
Code:
Public delegate bool booligate;
Aber wie geht es jetzt weiter kann mir da jemand ein Beispiel zeigen, und auch bitte ein Beispiel wie man die Funktion dann aufruft.

Lg
Theredvex
12/29/2012 12:59 nkkk#2
Überladen heist eig nur, das du mehrere funktionen mit gleichem namen aber verschiedenen argumenten hast, also du kannst durch überladung keine if frage einbauen.

und wie du in einen lambda ausdruck aufrufst ist ganz einfach:
Code:
Func<int,int> quad = i => i*i;
int neun = quad(3);


Func<bool,string> kopfoderzahl= b => {if(b) return "kopf"; else return "zahl";};
string kopf = kopfoderzahl(true);
12/29/2012 13:10 theredvex#3
Alles klar dann habe ich das mit dem überladen falsch verstanden. Ich möchte quasi ein paar IF Argumente mit in die Funktion geben so zum Beispiel
Code:
Public void beispiel( DIEFUNKTIONDIEICHSUCHE Check)
{
If(Spieler == ich && Check)
.....
Ich möchte also die Funktion mit den Parametern Spieler.IstAmLeben aufruffen, sodass Check bei der IF anfrage durch Spieler.IstAmLeben ersetzt wird
12/29/2012 14:00 nkkk#4
Quote:
Originally Posted by theredvex View Post
Alles klar dann habe ich das mit dem überladen falsch verstanden. Ich möchte quasi ein paar IF Argumente mit in die Funktion geben so zum Beispiel
Code:
Public void beispiel( DIEFUNKTIONDIEICHSUCHE Check)
{
If(Spieler == ich && Check)
.....
Ich möchte also die Funktion mit den Parametern Spieler.IstAmLeben aufruffen, sodass Check bei der IF anfrage durch Spieler.IstAmLeben ersetzt wird
aso das ist auch einfach . ich nehme mal an das IstAmLeben ein funktion ohne argumente ist die ein bool zurückgibt:


Code:
class Spieler
{
..
beispiel(IstAmLeben);

oder

beispiel(()  => this.IstAmLeben());
..
}


Public void beispiel(Func<bool> Check)
{
If(Spieler == ich && Check())
.....