gpt4 book ai didi

c# - 匿名函数与非匿名函数一样强大

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:16 24 4
gpt4 key购买 nike

<分区>

我一直认为匿名函数和命名函数一样强大,直到我想把一个私有(private)命名函数变成匿名函数,因为只有一个方法体需要调用这个函数。一个简单的例子:

public void Init(List<int> numbers, List<string> texts)
{
int n = GetFirst(numbers);
string t = GetFirst(texts);
}

private T GetFirst<T>(List<T> list)
{
return list[0];
}

希望定义类似的东西

GenFunc<T, List<T>, T> getFirst = list => list[0];

并使用它代替实例方法 GetFirst。使用 Func 是不可能的,因为通用参数具有不同的语义。因此,我定义了一个委托(delegate)(Func 的“基础”)

delegate T GetFirstDelegate<T>(List<T> list);

但我只能使用已定义的通用参数实例化它,例如

GetFirstDelegate<string> getFirst = list => list[0];

但不像我希望的那样使用占位符通用参数:

GetFirstDelegate<T> getFirst = list => list[0];

这让我觉得匿名方法不如命名方法强大 - 至少在通用用法方面 - 还是我遗漏了什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com