Mam następującą funkcję:połączeń System.IDisposable.Dispose na obiekcie „emailForm” przed wszystkimi odniesieniami do niego są poza zakresem
private void emailVideoButton_Click(object sender, EventArgs e)
{
VideoEMailForm emailForm = new VideoEMailForm();
emailForm.ShowDialog();
}
co daje mi następujące ostrzeżenie:
Ostrzeżenie 1 CA2000: Microsoft.Reliability: W metodzie "VideoPlayerControl.emailVideoButton_Click (object, EventArgs)", zadzwoń pod System.IDisposable.Dispose na obiekt "emailForm" zanim wszystkie odniesienia do niego będą poza zakresem.
Czytałem ten link http://msdn.microsoft.com/en-us/library/ms182289(v=vs.80).aspx i zebrane, że muszę zadzwonić .Dispose tak:
private void emailVideoButton_Click(object sender, EventArgs e)
{
VideoEMailForm emailForm = new VideoEMailForm();
emailForm.ShowDialog();
emailForm.Dispose();
}
Ale wtedy pojawia się następujące ostrzeżenie:
OSTRZEŻENIE 1 CA2000: Microsoft. Niezawodność: W metodzie "VideoPlayerControl.emailVideoButton_Click (object, EventArgs)" obiekt "emailForm" nie jest ułożony wzdłuż wszystkich ścieżek wyjątków. Zadzwoń pod System.IDisposable.Dispose na obiekcie "emailForm" zanim wszystkie odwołania są poza zakresem.
Czy ktoś może mi pomóc pozbyć się tego ostrzeżenia?
Więc nie trzeba ręcznie wywołać .Dispose wtedy, gdy używam tej metody ???? –
Zgadza się. Kompilator doda do ciebie wywołanie "Dispose". – Rotem
czy drugi kod w twoim przykładzie naprawdę działa? kiedy to zrobię, otrzymam nazwę, która nie istnieje w bieżącym błędzie kontekstu. – Bastardo