gpt4 book ai didi

c# - 在 Func 体内调用 Func

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:15 30 4
gpt4 key购买 nike

我遇到了一些麻烦,我写了一个 Func,IDE 不喜欢我在 Func 体内调用 Func ,我不太明白为什么,因为如果我将这个确切的代码放在方法体中,并使用相同的返回类型和参数,那么它就可以工作。

代码如下:

Func<XElement, TreeNode[]> arrayDel = new Func<XElement,TreeNode[]>(a => 
{
List<TreeNode> nodes = new List<TreeNode>();
foreach (XElement item in a.Elements())
{
if (item.HasElements)
{
nodes.Add(new TreeNode(item.Name.ToString(), arrayDel(item))); }
else
{
nodes.Add(new TreeNode(item.Name.ToString())); }
}
return nodes.ToArray();

最佳答案

这是不允许的,因为 Func<XElement,TreeNode[]>的构造函数可以假设调用 arrayDel 之前的函数已初始化,这意味着该函数将观察未初始化的变量。

因为知道那不会发生,而且arrayDel的值(value)在那种情况下会完全无关紧要,只需先将变量初始化为某个虚拟值即可。

Func<XElement, TreeNode[]> arrayDel = null;
arrayDel = new Func<XElement,TreeNode[]>(...);

关于c# - 在 Func 体内调用 Func,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22167755/

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