Делегат является типом.т.е. если вы создаете делегат, то вы фактически создаете класс, производный от System.Delegate.
public delegate void ValueChangedHandler(int value);
Таким образом, вы создали класс ValueChangedHandler.Итак, еще раз, если вы пишете
public delegate void ValueChangedHandler(int value, int j);
, то это два класса с одинаковыми именами в одном пространстве имен.Так что компилятор не позволит.