C# 此代码的解释

C# 此代码的解释,c#,c#-4.0,lambda,C#,C# 4.0,Lambda,我刚刚遇到了以下代码,我无法理解: var dataItem = (SportNode)item.DataItem; item.FindControl<Literal>("Node", image => image.Text = string.Format("<li data-nodeId='{1}' class='{0}'><a href='/sport?navItems={3}'>{2}</a></li>", "top

我刚刚遇到了以下代码,我无法理解:

var dataItem = (SportNode)item.DataItem;
item.FindControl<Literal>("Node", image =>
    image.Text = string.Format("<li data-nodeId='{1}' class='{0}'><a href='/sport?navItems={3}'>{2}</a></li>", "top",
    dataItem.NodeId, dataItem.Text, dataItem.NodeId));
var-dataItem=(SportNode)item.dataItem;
item.FindControl(“节点”,图像=>
image.Text=string.Format(“
  • ”,“top”, dataItem.NodeId,dataItem.Text,dataItem.NodeId));
    特别是,图像从何而来?它没有在任何地方声明,但似乎有一个类型。我当然不能在任何父类中看到它。

    “image”是lambda表达式的输入参数

    阅读更多关于lambdas的信息

    要更具可读性和更深入地了解lambdas

    “image”是lambda表达式的输入参数

    阅读更多关于lambdas的信息


    要更具可读性和更深入地了解lambdas

    这是一个匿名方法
    image
    是此方法的参数名称。
    image
    的类型是从
    FindControl
    的第二个参数推断出来的。这是一个匿名方法
    image
    是此方法的参数名称。
    image
    的类型是从
    FindControl

    image的第二个参数推断出来的,这里是匿名函数的参数-它从传递给它的任何对象的签名中派生其类型;例如:

        private void PrintResult(Func<Int32, Int32> f)
        {
            Debug.WriteLine(f.Invoke(1));
        }
    
        //In some other method
        PrintResult(n => n + 2); //prints 3
    
    private void打印结果(Func f)
    {
    Debug.WriteLine(f.Invoke(1));
    }
    //用其他方法
    打印结果(n=>n+2)//印刷品3
    

    如果您愿意,您可以查询更多信息-我会搜索“Lambda expression”或“anonymous function”。

    Image,这里是匿名函数的参数-它从您传入的任何函数的签名派生其类型;例如:

        private void PrintResult(Func<Int32, Int32> f)
        {
            Debug.WriteLine(f.Invoke(1));
        }
    
        //In some other method
        PrintResult(n => n + 2); //prints 3
    
    private void打印结果(Func f)
    {
    Debug.WriteLine(f.Invoke(1));
    }
    //用其他方法
    打印结果(n=>n+2)//印刷品3
    
    如果您愿意,您可以查询更多信息-我会搜索“Lambda表达式”或“匿名函数”