Hi Bruce,
> Just would like to know why?
When you call a method, the calling method puts all parameters on the stack where the called functions retrieves them. In other words, the method doesn't determine parameters by name but by position on the stack. In addition, there's no parameter that specifies how many values have been passed. If the CLR would allow your new code to run, your method would read more data from the stack than was made available end probably end up deleting the return address from the stack. As a result, your application would crash.
--
Christof