C# Func是一个特殊的委托,还是我们也可以手动创建它?

C# Func是一个特殊的委托,还是我们也可以手动创建它?,c#,delegates,C#,Delegates,Func delegate用于具有单个参数且返回类型为TResult的委托 这是一个特殊的委托,还是我们可以自己手动编写代码 e、 g.我可以创建一个Func,但它接受两个输入参数吗?Func实际上是名称空间中的一系列类,即: 0个参数,1个参数,2个参数。。。16个参数 总共有17个不同的Func类,支持0到16个参数。由于泛型在.NET中的工作方式,允许它们在代码Func中共享名称,即使它们实际上是不同类型的Func、Func、Func等-泛型的数量决定/消除使用哪种实际类型的歧义 快乐编码

Func delegate用于具有单个参数且返回类型为TResult的委托

这是一个特殊的委托,还是我们可以自己手动编写代码

e、 g.我可以创建一个Func,但它接受两个输入参数吗?

Func实际上是名称空间中的一系列类,即:

0个参数,1个参数,2个参数。。。16个参数

总共有17个不同的Func类,支持0到16个参数。由于泛型在.NET中的工作方式,允许它们在代码Func中共享名称,即使它们实际上是不同类型的Func、Func、Func等-泛型的数量决定/消除使用哪种实际类型的歧义

快乐编码

对于委托之间的转换,这可能有助于在C程序中运行:

delegate int MyDelegate (int y);

void Main()
{
    Func<int,int> fun1 = (q) => q * q;
    MyDelegate del = new MyDelegate(fun1); // Convert the "Func" delegate to custom...
    Func<int,int> fun2 = new Func<int,int>(del); // ...and back
}
Func实际上是命名空间中的一系列类,即:

0个参数,1个参数,2个参数。。。16个参数

总共有17个不同的Func类,支持0到16个参数。由于泛型在.NET中的工作方式,允许它们在代码Func中共享名称,即使它们实际上是不同类型的Func、Func、Func等-泛型的数量决定/消除使用哪种实际类型的歧义

快乐编码

对于委托之间的转换,这可能有助于在C程序中运行:

delegate int MyDelegate (int y);

void Main()
{
    Func<int,int> fun1 = (q) => q * q;
    MyDelegate del = new MyDelegate(fun1); // Convert the "Func" delegate to custom...
    Func<int,int> fun2 = new Func<int,int>(del); // ...and back
}
已经有一个Func接受两个输入参数

不过要回答您的问题,不,它与任何其他委托相比都不特殊,您可以创建自己的委托,但为什么要创建呢?

已经有一个接受两个输入参数的Func

不过,要回答您的问题,不,它与任何其他代理相比都不特殊,您可以创建自己的代理,但为什么要创建呢?

已经有一个Func可以这样做。但是你所要求的有点不同,你知道这两个参数是同一类型的。您仍然可以在内置Func中使用同一类型参数两次,但如果确实需要,可以执行以下操作:

public delegate TResult MyFunc<T, TResult>(T param1, T param2);
已经有一个Func可以这样做。但是你所要求的有点不同,你知道这两个参数是同一类型的。您仍然可以在内置Func中使用同一类型参数两次,但如果确实需要,可以执行以下操作:

public delegate TResult MyFunc<T, TResult>(T param1, T param2);

你不应该创建你自己的函数。Func有高达16个参数的重载

以及两者之间的每一个变化。基本上,前n-1个参数是输入的,最后一个是返回值


因此,Func与接受3个int参数并返回int的委托相比。

您不必创建自己的Func。Func有高达16个参数的重载

以及两者之间的每一个变化。基本上,前n-1个参数是输入的,最后一个是返回值


因此,Func与接受3个int参数并返回int的委托相比。

此外,还可以使用lambda表达式实现更优雅的语法!例如:Func intsAreEqual=i,y=>i==y;此外,还可以使用lambda表达式实现更优雅的语法!例如:Func intsAreEqual=i,y=>i==y;因此,您上面的代码与内置Func委托族的代码基本相同?不,有点不同。对于每个普通参数,内置委托都有一个类型参数。这有一个类型参数用于两个普通参数,要求两个普通参数的类型相同。因此,对于内置的Func委托族,上面的代码基本相同?不,有点不同。对于每个普通参数,内置委托都有一个类型参数。这有一个类型参数用于两个普通参数,要求两个普通参数的类型相同。