Czy mogę zdefiniować 2 delegatów o tej samej nazwie, ale różnych parametrach?

Próbowałem zdefiniować zastępowanie delegata międzyInt32 iIntPtr. Dlaczego następujące przeciążenia są nielegalne?

public delegate int EnumWindowsCallback (System.IntPtr hWnd, int lParam);

public delegate int EnumWindowsCallback (System.IntPtr hWnd, System.IntPtr lParam);

To wygląda dość dziwnie. Oba są strukturami, ale różnią się i implementują z różnych interfejsów.

Pomyśl o tym, nigdy wcześniej nie próbowałem przeciążać delegata. Czy to jest legalne, a jeśli tak, to dlaczego?

AKTUALIZACJA: Po przejrzeniu odpowiedzi i kilku innych postów SO byłem zaskoczony, że delegatów nie można zadeklarować nawet przy różnej liczbie parametrów. Nadal zastanawiam się, dlaczego nie można tego rozwiązać w czasie wykonywania.

questionAnswers(4)

yourAnswerToTheQuestion