Я не могу понять, почему он работает таким образом. < /p>
У меня есть два класса, которые реализуют интерфейс
pseudo -код < /p>
Public Interface IChart
{
void Show()
void Hide()
}
public class DailyChart: IChart
{
/***/
public DailyChart(chartControl, Id)
{
chartControl.CustomDraw += new CustomDrawEvent(/**/)
}
}
public class WeeklyChart: IChart
{
public WeeklyChart(chartControl, Id)
{
chartControl.CustomDraw += CustomDrawEvent(/**/)
}
< /code>
Затем в форме Winforms я объявляю объект < /p>
IChart object
< /code>
Затем я использую Combobox для переключения между диаграммами во время выполнения, что выглядит как < /p>
object = new Weeklychart(chartControl, id)
< /code>
или < /p>
object = new DailyChart(chartControl, id)
< /code>
, а затем идет приложение Magic
i запускаю, переключаюсь с еженедельно на ежедневную, а затем на еженедельный, и это вызывает ошибку. Я отлаживал приложение и обнаружил, что CustomDrawEvent находится в обоих классах одновременно - что, очевидно, вызывает ошибку, потому что у них разные реализации (но правильный класс вызывается для создания диаграммы) < /p>
Кто -нибудь знает, где проблема? < /P>
Подробнее здесь: https://stackoverflow.com/questions/219 ... one-object