2016-03-20 4 views
1

Ich habe eine Menge PHP in der Vergangenheit getan und dort wo Sie in der Lage, durch Code als Parameter übergeben, wenn ich richtig war es aufgerufen aufgerufen. DieseC# Erstellen aufrufbar wie PHP

ist, wie es aussieht:

METHOD('Parameter', function() { 
echo "Hey!"; 
}); 

ist dies möglich, in C#? Weil ich das gerne machen würde. um diese Funktion als Parameter in einer Methode auszuführen.

Antwort

0

Mein awnser, dass ich schnell nach der Einlieferung diese Frage gefunden:

Verbrauch:

TestMethod ("Lambda",() => { 
    Console.WriteLine("Expression"); 
}); 

Methode:

public void TestMethod (string name, Action action) { 
if(name == "Lambda") { 
    action.Invoke(); 
} 
} 
3

Wenn ich richtig verstehe, möchten Sie eine aufrufbare Funktion an eine andere Methode übergeben? Der einfachste Weg, dies zu tun wäre, um ein Func oder Action Parameter zu verwenden:

void MyMethod(Action<string> passedInFunc) 
{ 
    passedInFunc("Hey"); 
} 

Und dann rufen:

MyMethod(s => 
{ 
    Console.WriteLine(s); 
}); 

Eine Aktion stellt eine Funktion, die, während ein Func keinen Wert zurückgeben ist eine Funktion, die einen Wert zurückgibt. Wenn Sie keine Argumente an Ihre Aktion übergeben möchten, können Sie eine non-generic Version verwenden.

Am Ende sind dies nur delegates, so dass Sie auch Ihren eigenen benutzerdefinierten Delegaten definieren und diesen stattdessen übergeben können.

+0

Danke, nachdem ich gepostet es LambaExpression Spiel in mir und ich habe es geschafft. Aber konnte diese Frage nicht zurück finden. Ich werde es mir selbst merken. Trotzdem danke! –

+0

@joey FYI in der Mitte der oberen Leiste, können Sie auf Ihren Avatar klicken, um auf Ihr Profil zuzugreifen. Dort finden Sie die Fragen, die Sie gestellt haben. –