Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非常简单的Lambda/事件参数Prob_C#_Parameters_Lambda - Fatal编程技术网

C# 非常简单的Lambda/事件参数Prob

C# 非常简单的Lambda/事件参数Prob,c#,parameters,lambda,C#,Parameters,Lambda,因此,我只是尝试将MyReader传递到EventHandler函数中。我知道我必须使用“=>”运算符,但仍然会出现错误。这是我的密码: private void PrintButton_Click(object sender, RoutedEventArgs e) { StringReader MyReader= new StringReader(StrTxt); PD.PrintPage += new PrintPageEventHandler(t

因此,我只是尝试将MyReader传递到EventHandler函数中。我知道我必须使用“=>”运算符,但仍然会出现错误。这是我的密码:

     private void PrintButton_Click(object sender, RoutedEventArgs e)
     {
      StringReader MyReader= new StringReader(StrTxt);
      PD.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
     }

     private void pd_PrintPage(object sender, PrintPageEventArgs ev)
     {
     }

将其用作发送方和eventargs的附加参数:

PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);

//...

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
    //...
}

指定参数
PD。PrintPage
在括号中有(
对象发送方,PrintPageEventArgs ev
),然后在
=>
运算符之后指定要使用的函数。

将其用作发送方和事件args的附加参数:

PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);

//...

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
    //...
}

指定括号中的参数
PD.PrintPage
具有(
对象发送者,PrintPageEventArgs ev
),然后在
=>
运算符之后指定要使用的函数。

如果要传入额外对象,则需要将其作为参数公开:

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
 {
 }
然后您可以使用:

 PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);

注意,这里不必使用=>但是可以:这样做很方便。至少还有两种方法可以更详细地执行相同的操作。

如果要传入额外的对象,请将它们作为参数公开:

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
 {
 }
然后您可以使用:

 PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);

注意,这里不必使用=>但是可以:这样做很方便。至少还有两种方法可以更详细地完成同一件事。

那么,您会遇到哪些错误?这里给我们一个线索…PrintPageEventHandler不接受StringReader。。。那么,您打算如何将其传递到函数中?csharpler的解决方案可以实现您特别要求的功能,但我确实想知道这里是否发生了其他事情……下面显示的是一个错误。那么,您会遇到哪些错误?这里给我们一个线索…PrintPageEventHandler不接受StringReader。。。那么,您打算如何将其传递到函数中?csharpler的解决方案可以完成您特别要求的任务,但我确实想知道这里是否发生了其他事情…下面显示的是一个错误我收到了这个错误。。。无法在此作用域中声明名为“sender”的局部变量,因为它将赋予“sender”不同的含义,而“sender”已在“父级或当前”作用域中用于表示其他内容。请使用其他名称,例如just
s
PD.PrintPage+=(s,ev)=>this.PD\u PrintPage(s,ev,MyReader)我收到此错误。。。无法在此作用域中声明名为“sender”的局部变量,因为它将赋予“sender”不同的含义,而“sender”已在“父级或当前”作用域中用于表示其他内容。请使用其他名称,例如just
s
PD.PrintPage+=(s,ev)=>this.PD\u PrintPage(s,ev,MyReader)