Action Type C#可以return一个类型吗?
Action Type C# can return a type?
我正在查看代码,我看到它说
public Action<MainViewModel, MainViewModel> SetView { get; }
这是否表明操作 SetView
正在接收某些东西?我以为动作类型总是无效的?
此外,(ViewModel.SetView)
部分是什么意思?该类型是否转换为 SetView
?
SetView = new Action<MainViewModel,MainViewModel>(ViewModel.SetView)
Action
类型只能传递参数。如果你想return一个值,那么你可以使用Func<>
.
在您的示例中,SetView
是一个采用 Action<MainViewModel,MainViewModel>
的 属性,这意味着 属性 应设置为接受 2 个 MainViewModel 的方法参数,比如:
void MyMethod(MainViewModel model1, MainViewModel model2)
{ ... }
除了你的只是一个 getter,所以我假设它是在构造函数中设置的。
为了回答您的进一步问题,这是 Action 的 prototype:
public delegate void Action<in T1,in T2>(T1 arg1, T2 arg2);
SetView = new Action(ViewModel.SetView);
这是在 属性 SetView 上调用 set 方法,其中一个方法 (ViewModel.SetView) 接受 2 个 MainViewModel 参数。
是否可以在一个 class 中有一个名为 SetView 的 属性 和在视图模型 class 中有一个名为 SetView 的函数?
我正在查看代码,我看到它说
public Action<MainViewModel, MainViewModel> SetView { get; }
这是否表明操作 SetView
正在接收某些东西?我以为动作类型总是无效的?
此外,(ViewModel.SetView)
部分是什么意思?该类型是否转换为 SetView
?
SetView = new Action<MainViewModel,MainViewModel>(ViewModel.SetView)
Action
类型只能传递参数。如果你想return一个值,那么你可以使用Func<>
.
在您的示例中,SetView
是一个采用 Action<MainViewModel,MainViewModel>
的 属性,这意味着 属性 应设置为接受 2 个 MainViewModel 的方法参数,比如:
void MyMethod(MainViewModel model1, MainViewModel model2)
{ ... }
除了你的只是一个 getter,所以我假设它是在构造函数中设置的。
为了回答您的进一步问题,这是 Action
public delegate void Action<in T1,in T2>(T1 arg1, T2 arg2);
SetView = new Action
这是在 属性 SetView 上调用 set 方法,其中一个方法 (ViewModel.SetView) 接受 2 个 MainViewModel 参数。
是否可以在一个 class 中有一个名为 SetView 的 属性 和在视图模型 class 中有一个名为 SetView 的函数?