C#中使用匿名函数做函数参数,求教语法含义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中使用匿名函数做函数参数,求教语法含义相关的知识,希望对你有一定的参考价值。
public partial class MainPage : UserControl,IViewBase
private MainPageViewModel _viewModel;
private IMainPageServiceProxy _proxy;
public MainPage()
InitializeComponent();
_proxy = ServiceFactory.MainPageService;
this._viewModel=new MainPageViewModel(this,_proxy,()=>this.DataContext = _viewModel;);
注意该匿名函数函数传给下面这个构造函数
public class MainPageViewModel : INotifyPropertyChanged
public MainPageViewModel(IViewBase view, IMainPageServiceProxy proxy, Action callback)
this._view = view; this._proxy = proxy; LoadTestReport(callback);
又传给下面,这传来传去里面的方法体何时执行,
public void LoadTestReport(Action callback)
_view.LoadingBegin();
this._proxy.LoadTestReport( result =>
this.TestReportDatas = result;
_view.LoadingStop();
if (callback != null)
callback();
);
又调用以下方法
public void LoadTestReport(Action<List<TestReportModel>> callback)
this.serviceClient.LoadTestReportCompleted +=
new EventHandler<LoadTestReportCompletedEventArgs>(On_LoadTestReportCompleted);
this.serviceClient.LoadTestReportAsync(callback);
void On_LoadTestReportCompleted(object sender, LoadTestReportCompletedEventArgs e)
CallbackHandlerByCatch<List<TestReportModel>>(e, new List<TestReportModel>(), () => return e.Result; , "LoadTestReport");
this.serviceClient.LoadTestReportCompleted -= On_LoadTestReportCompleted;
这个callback变量含义是啥,求教
只是想请教这些匿名函数作为参数,其函数体啥时候执行,搞不清程序执行的流程顺序
那么你是不是可以通过btn.Form之类的方法获取到这个窗体,从而获取到窗体里的相应属性之类
如果不是公共的,可以通过反射来实现
RoutedEventHandler事件的参数是已经固定了的,就是Object sender, RoutedEventArgs e
所以你无法增加你需要的参数,
不过这个sender,就是触发事件的对象,也就是那个btn,你可以变通一下,给那个btn的某些属性赋值成你希望传递的参数,比如btn.Text = 参数
然后在:btn_Click方法里,把sender转换为btn对象,并获取text属性 参考技术B 看上去是很绕,也许是一个庞大项目的构建,但对于小项目就显得没必要了。Action<T> 的变量是一个函数参数,表示对T的类项的参数要执行什么代码。
以上是关于C#中使用匿名函数做函数参数,求教语法含义的主要内容,如果未能解决你的问题,请参考以下文章