加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何指定方法作为我方法的参数?

发布时间:2020-12-15 23:42:35 所属栏目:百科 来源:网络整理
导读:C#的新手,我如何创建一个接受方法作为其参数之一的方法? 听起来有点奇怪,但我希望它能在c#中得到支持. 我试过的: public void CalculateRepairedCars(int total,/*here I want to pass a method..*/){ ...} 这是我想传递的方法: public int Calculate{int
C#的新手,我如何创建一个接受方法作为其参数之一的方法?

听起来有点奇怪,但我希望它能在c#中得到支持.

我试过的:

public void CalculateRepairedCars(int total,/*here I want to pass a method..*/)
{
    ...
}

这是我想传递的方法:

public int Calculate{int totalCars,Condition condition}
{
...
}

解决方法

“将一个方法放在一个值中”(你可以在C#中做很多事情,比如作为参数传递给另一个方法)被称为为该方法创建一个 delegate.

委托具有直接对应于其指向的方法的签名的类型(即其参数的数量和类型以及返回值). C#为不返回值(Action及其兄弟)的代表以及执行(Func及其兄弟)的代理提供现成的类型.

在您的情况下,Calculate的签名与Func<int,Condition,int>类型匹配,因此您可以编写

public void CalculateRepairedCars(int total,Func<int,int> calc)
{
    // when you want to invoke the delegate:
    int result = calc(someCondition,someInteger);
}

并使用它

CalculateRepairedCars(i,Calculate);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读