Question: Is there a way to store a delegate without binding it to an object like how you can with a MethodInfo? Right now I am storing a MethodInfo so I can give it the object to call the method for. But I much rather have it be a delegate. Like is there an attribute that tells .net that the first parameter is "this"?

```
MethodInfo mi;
Action<string> func;
mi.Invoke(this,new object[]{str});
func(this, str); //Is this possible with a delegate?

```

Answer: 
Why not simply

```
Action<T, string> unbound = (This, str) => This.Method(str);

```

so you can

```
unbound(instanceA, "hello");
unbound(instanceB, "world");

```

or even

```
Action<string> bound = str => unbound(instanceC, str);

```
A delegate is essentially just a `MethodInfo` (actually, a `MethodBase`) and an object reference, with some internal pointers for performance. So if you have a `MethodInfo`, you essentially have an unbound delegate. What is your specific use case?