Answering your questions:
1) Is this depend on the programming language? Or the framework? Or the Editor?
I don't know the exact name in the .NET terminology but in Java/Eclipse the modification of code while it is running is called Hot Code Replacement. It all depends on whether the runtime environment is able to accept the kind of changes while keeping the rest of the program valid.
2) Is it only when I change delegates? Or other things?
If the changes are in the behaviour I'd say it's more likely to be accepted. Structural changes like adding methods, renaming classes or modifying other maybe more sophisticated constructs that are translated to classes or otherwise rather static structures will cause problems at most times.
3) Why is this so?
Well, the other answers should make this clear. Some changes cannot be done during runtime. Static type safety is another reason that may be circumvented otherwise.