2016-11-08 5 views
-1

Я пришел к тому моменту, когда создал простой метод, который подписал событие. Мне было интересно, что произойдет, если я расскажу об этом более одного раза.Повторно подписавшись на событие

Пример:

//This method will be launched everytime a TabSelection Event fires... 
public void SampleMethod() 
{ 
this.ctlSample.gridView.SelectionChanged += gridView_SelectionChanged; 
} 

Может ли быть исключение Stackoverflow? Например, он реплицирует информацию в память или является ли среда выполнения достаточно умной, чтобы игнорировать это?

+0

Почему бы вам не попробовать и не узнать сами? Это было бы намного быстрее и легче, чем задавать вопрос здесь. – Servy

+0

@ Серви да, наверное. Но это было не так важно, и я мог вернуться на работу, ожидая ответов. На самом деле, это не стоило столько времени, сколько пробовал сам. – Cataklysim

+0

Вам понадобилось меньше времени, чтобы набрать вопрос, чем однажды нажать F5, чтобы узнать, что произошло, когда вы запустили программу, которую вы уже написали? И независимо от того, даже если это быстрее для вас (это было не так, но только ради аргумента), это * чрезвычайно * не учитывает вас, чтобы заняться так много других людей, просто чтобы спасти вас буквально на несколько секунд время. – Servy

ответ

0

Ваш метод gridView_SelectionChanged будет выполняться несколько раз, когда ваше событие вызывается.

Это одна из вещей, которые вы можете проверить самостоятельно и найти действительно просто.

public static event EventHandler TestEvent; 

    public static void Main(string[] args) 
    { 
     TestEvent += Program_TestEvent; 
     TestEvent += Program_TestEvent; 
     TestEvent += Program_TestEvent; 

     TestEvent(null, EventArgs.Empty); 
    } 

    private static void Program_TestEvent(object sender, EventArgs e) 
    { 
     Console.WriteLine("EVENT"); 
    } 

    //output: 
    //EVENT 
    //EVENT 
    //EVENT 
Смежные вопросы