Wpf 为什么要使用Func<&燃气轮机;MVVM应用程序中的控制器内构造函数参数

Wpf 为什么要使用Func<&燃气轮机;MVVM应用程序中的控制器内构造函数参数,wpf,mvvm,prism,Wpf,Mvvm,Prism,我在MVVM应用程序(WPF和Prism)中看到越来越多的类似下面的代码。控制器具有以下代码片段: public class DispenseOptionController : IDispenseOptionController { protected readonly Func<IPharmacyCdmServiceSimpleClient> CdmClient; protected readonly Func<IPatientServiceSimpleC

我在MVVM应用程序(WPF和Prism)中看到越来越多的类似下面的代码。控制器具有以下代码片段:

public class DispenseOptionController : IDispenseOptionController
{
    protected readonly Func<IPharmacyCdmServiceSimpleClient> CdmClient;

    protected readonly Func<IPatientServiceSimpleClient> PatientClient;

    public DispenseOptionController(Func<IPharmacyCdmServiceSimpleClient> cdmClient, Func<IPatientServiceSimpleClient> patientClient)
    {
        CdmClient = cdmClient;
        PatientClient = patientClient;
    }...
公共类分发选项控制器:IDispenseOptionController
{
受保护的只读Func CdmClient;
受保护的只读Func PatientClient;
公共分发选项控制器(Func CDM客户端、Func patientClient)
{
CdmClient=CdmClient;
PatientClient=PatientClient;
}...
我试图理解Func在这里扮演的角色。似乎这个委托被用作构造函数的参数。有人能向我解释一下为什么会有人在这种特殊情况下使用Func吗?Func可以被其他任何东西取代吗?

A
Func
只不过是一个包含一个或多个参数的方法的封装并返回由TResult参数指定的类型的值


你可以看到一些我理解的用例。我想我想知道为什么会使用Func而不是接口,并使用IOC来注入参数。为什么会这样?