我有以下代码:
private void Example(Func<string,int> myDelegate)
{
int length = myDelegate(RECEIVEDSTRING).; //How to access received string??
}
当我执行方法时:示例(x =&gt;“Hello”.Length);如何在方法示例中访问字符串“Hello”?
感谢。
问候。
何。
答案 0 :(得分:0)
这不是你应该如何处理这个委托。它需要一个输入参数,Example
需要知道有关输入参数的一些细节才能执行委托。这里Example
“作用”作为外部代码的接口,外部代码必须提供自己的实现。
如果Example
需要执行委托,那么它需要提供REQUIRED字符串参数。恕我直言,Example
需要在其签名中提供第二个参数,如下所示......
private void Example(string s, Func<string,int> myDelegate)
{
int length = myDelegate(s);
}
然后外部代码可以提供自己的实现和参数......
Example("Hello", x => { return x.Length; });
您在C#
中无法做到的事情,委托需要运行显式上下文,该上下文是字符串输入参数。
希望它有意义