将方法添加到事件和创建方法之间的区别

时间:2017-12-31 10:33:30

标签: c# wpf click

添加方法按钮的点击事件和创建单独的点击方法有什么区别,除了它们是在不同的地方创建的?他们不是同样的事吗?

namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        startWorkButton.Click += async (sender, o) =>
        {
            startWorkButton.IsEnabled = false;
            workStartedTextBlock.Text = "Job Started";
            await Task.Delay(1000);
            startWorkButton.IsEnabled = true;
            workStartedTextBlock.Text = "Job Ended";
        };
    }

    //private async void startWorkButton_Click(object sender, RoutedEventArgs e)
    //{
    //    startWorkButton.IsEnabled = false;
    //    workStartedTextBlock.Text = "Job Started";
    //    await Task.Delay(1000);
    //    startWorkButton.IsEnabled = true;
    //    workStartedTextBlock.Text = "Job Ended";
    //}
}
}

1 个答案:

答案 0 :(得分:2)

基本上是相同的。在幕后,编译器会生成一个名为c#的合法方法(如<>lambdaFunc'1或类似的东西)。这是为了确保程序员没有定义具有该名称的方法。这种方法可能会也可能不会在一个单独的类中,取决于很多东西。重要的是,从你的角度来看,它是一样的。它们存在的原因是为了让您可以自由地为一些只使用一次的东西定义一个新方法。你不必给它一个名字,也不会让你的课堂变得混乱。