当前位置:编程学习 > C#/ASP.NET >>

这个代码如何解读?



System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"[0123456789]{2,}", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

System.Text.RegularExpressions.MatchEvaluator regm_eval = new System.Text.RegularExpressions.MatchEvaluator(MatchEvaluator_Replace);



      private string MatchEvaluator_Replace(System.Text.RegularExpressions.Match m)
        {
            return string.Format("<span style='color:red'>{0}</span>", m.Value);
        }



提问:
当他MatchEvaluator使用委托传入参数MatchEvaluator_Replace的时候,MatchEvaluator_Replace方法的参数为什么没有传? --------------------编程问答-------------------- MatchEvaluator只需要一个返回string类型的方法,不需要传递参数 --------------------编程问答--------------------
引用楼主 cjw227 的回复:
C# code


System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"[0123456789]{2,}", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

System.Text.RegularExp……


那MatchEvaluator_Replace方法中的参数(System.Text.RegularExpressions.Match m)是
怎么确定的呢? --------------------编程问答-------------------- 求助~ --------------------编程问答-------------------- 这和系统的事件是一样的,你可以随便看看你的form里面的代码都有这样的东东的
比如button.Click += new SystemHandler()...


其实就是在委托上挂个函数,也可以理解成函数指针指向了括号内的那个函数
所以这里没有必要带上参数,只是挂上或者说指过去

--------------------编程问答--------------------
引用 4 楼 xiao_p 的回复:
这和系统的事件是一样的,你可以随便看看你的form里面的代码都有这样的东东的
比如button.Click += new SystemHandler()...


其实就是在委托上挂个函数,也可以理解成函数指针指向了括号内的那个函数
所以这里没有必要带上参数,只是挂上或者说指过去


那MatchEvaluator_Replace方法中的参数(System.Text.RegularExpressions.Match m)的m指的是哪个值呢? --------------------编程问答-------------------- --------------------编程问答-------------------- 我大概明白楼主的问题了
你现在混淆了 函数,函数的调用者和函数指针之间的关系了

函数不说了,你肯定明白

函数的调用者,就是调用函数的东东,你也肯定能明白
函数的调用者,因为要调用函数,所以必须得给出方法名和参数
也就是上面的MatchEvaluator_Replace和参数m的值

函数指针,也就是上面的委托,你可以将它看成是一个盒子,是用来存放某一类型,具有相同的参数和返回值的函数的。

将某个函数放在盒子中,是不需要给出参数的,这样就是上面的+=后面的东东了
实际上+=这个东东就是将函数扔在盒子里的过程

如果还不明白,好好看看.net的委托就明白了,楼主现在的问题是.net的委托你还不太清楚。 --------------------编程问答--------------------
引用 7 楼 xiao_p 的回复:
我大概明白楼主的问题了
你现在混淆了 函数,函数的调用者和函数指针之间的关系了

函数不说了,你肯定明白

函数的调用者,就是调用函数的东东,你也肯定能明白
函数的调用者,因为要调用函数,所以必须得给出方法名和参数
也就是上面的MatchEvaluator_Replace和参数m的值

函数指针,也就是上面的委托,你可以将它看成是一个盒子,是用来存放某一类型,具有相同的参数和返回……


恩,谢谢。
那MatchEvaluator_Replace方法内部需要用到m。这个m的值我搞不清楚哪里给他的?
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,