I think the following explains why the compiler has difficulty with this. Say we have:
string MyMethod() { return ""; }
We cannot assign this method to var , in other words, we cannot use this:
This is because there can be any number of delegates that can be used, for example:
delegate string MyDelegate();
Now we have two options, and it would seem to be wrong if the compiler allowed one over the other:
EDIT: for the sake of completion, I am adding a link to this (in the comments it was mentioned by OP).
source share