Purpose
This refactoring creates a lambda expression and inlines a referenced delegate. If there is only one reference to a delegate method, the Inline Lambda refactoring deletes the delegate method. Use this Refactoring to create the delegate in a lambda syntax.
Availability
This refactoring is available when the caret is in a method reference within a delegate creation statement.
How to Use
Place the caret in a method reference within a delegate creation statement. For example, in the “UserControl1_Loaded” method reference.
namespace Inline {
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
Loaded += UserControl1_Loaded;
}
private void UserControl1_Loaded(object sender, RoutedEventArgs e) {
if(sender != null)
sender.ToString();
}
}
}
Namespace Inline
Public Partial Class UserControl1
Inherits UserControl
Public Sub New()
InitializeComponent()
Loaded += AddressOf UserControl1_Loaded
End Sub
Private Sub UserControl1_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
If sender IsNot Nothing Then sender.ToString()
End Sub
End Class
End Namespace
Press the Ctrl + . or Ctrl + ~ shortcut to invoke the Code Actions menu.
Select Inline Lambda from the menu.
After execution, this Refactoring creates a lambda expression and inlines the referenced delegate.
namespace Inline {
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
Loaded += (sender, e) =>
{
if (sender != null)
sender.ToString();
};
}
}
}
Namespace Inline
Partial Public Class UserControl1
Inherits UserControl
Public Sub New()
InitializeComponent()
Loaded += Sub(sender, e) If sender IsNot Nothing Then sender.ToString()
End Sub
End Class
End Namespace