Wir wissen, dass Delegaten Referenztyp sind, der sich auf Funktion bezieht.Mechanismus der Speicherzuweisung zu Delegaten in C# .net
using System;
namespace Testing_Delegates
{
class Program
{
delegate void fun_delegate();
fun_delegate response;
static void Main(string[] args)
{
Program p = new Program();
p.fun();//Calling function directly
p.response += p.fun;//Setting reference to the function via delegate
}
public void fun()
{
int lvariable = 10000;
string rvariable = "Hello Developers!";
Console.WriteLine(lvariable + " " + rvariable);
}
}
}
Wie wir wissen lokale Variablen innerhalb Funktion (fun) sind lvariable die Speicher auf dem Stapel zugeordnet ist und rvariable an Speicherplatz Heap enthalten Referenz wo der String-Shop ist.
, Now
- Wenn wir delegieren oder Instanz von Delegierten zu definieren, wo sie (fun_delegate und response) Speicher zuzuordnen, ob auf dem Stapel oder Haufen auf?
- Warum muss eine Instanz von delegate erstellt werden, um sie auf eine Funktion zu verweisen?
können Sie diesen Beitrag http://stackoverflow.com/questions/22431902/where-variables-of-a-function-is-store-on-stack-or-heap überprüfen möchten – Rahul