Ne ho bisogno? L'ho sempre usato, ma di recente ho notato ReSharper che diceva di sbarazzarsi di esso. Ad esempio:
feedbackButton.Click += new RoutedEventHandler(OnFeedbackClick);
sembra ridurre a
feedbackButton.Click += OnFeedbackClick;
senza problemi.
risposte:
2 per risposta № 1Entrambi questi frammenti di codice fanno esattamente lo stesso lavoro o in effetti sono entrambi uguali.
Nel primo esempio si fornisce esplicitamente un tipo di delegato che è obbligatorio se si utilizza la versione di framework 1.1 o 2.0.
Ma nel secondo esempio lasci che il tuo compilatore trovi il tipo di delegato appropriato al compilare il tempo che è noto come digitare inferenze e che funziona solo dalla versione 3.0 del framework.
0 per risposta № 2
In C # 1.0 era obbligatorio specificare il tipo di delegato in modo esplicito. Nelle versioni successive diventa opzionale, dal momento che il compilatore ha ottenuto l'inferenza di tipo per i delegati.