Warum ist es notwendig, eine Funktion STATIC während der Verwendung von Delegaten in C# zu erstellen?Warum kann ein Delegat nicht auf eine nicht statische Methode verweisen, wenn er in einer statischen Methode verwendet wird?
class Program
{
delegate int Fun (int a, int b);
static void Main(string[] args)
{
Fun F1 = new Fun(Add);
int Res= F1(2,3);
Console.WriteLine(Res);
}
**static public int Add(int a, int b)**
{
int result;
result = a + b;
return result;
}
}
Weil Sie versuchen, es in einem statischen Kontext von Main zu referenzieren? – captncraig
Ich leugne die Prämisse der Frage; Es ist * nicht * notwendig, die Methode statisch zu machen. Es ist notwendig, dem Delegierten genügend Informationen bereitzustellen, um die Methode erfolgreich aufzurufen; Bei nicht statischen Methoden gehört dazu auch das Bereitstellen der Instanz, die den nicht statischen Methodenaufruf empfängt. –