Do I need it? I’ve always used it, but recently noticed ReSharper saying to get rid of it. For example:
feedbackButton.Click += new RoutedEventHandler(OnFeedbackClick);
appears to reduce to
feedbackButton.Click += OnFeedbackClick;
with no issues.
Both of these code snippet exactly do the same job or in fact they are both same.
In the first example you are explicitly providing a type of the delegate which is a must if you are using 1.1 or 2.0 framework version.
But in the second example you let your compiler find the appropriate delegate type at the compile time which is known as type inferencing and that works only from 3.0 framework version.