Skip to main content

Inline Lambda

  • 2 minutes to read

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

  1. 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();
            }
        }
    }
    
  2. Press the Ctrl + . or Ctrl + ~ shortcut to invoke the Code Actions menu.

  3. Select Inline Lambda from the menu.

    inline-lambda

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();
            };
        }
    }
}