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

C#Action,传递函数作为参数

发布时间:2020-12-16 10:18:10 所属栏目:百科 来源:网络整理
导读:我想将一个条件作为Action传递给另一个方法. “ComputerPriceGenerator”中的第一行有效,但如何使数组工作(第二行)?任何想法 我正在寻找建议……,CalculateAllPrice尚未设计 public void ComputerPriceGenerator(){ //Below line Works PriceMachine.Calcul
我想将一个条件作为Action传递给另一个方法. “ComputerPriceGenerator”中的第一行有效,但如何使数组工作(第二行)?任何想法

我正在寻找建议……,CalculateAllPrice尚未设计

public void ComputerPriceGenerator()
{
    //Below line Works
    PriceMachine.CalculatePrice(cart.Computers[0],() => ComputerConverter(cart.Computers[0]));           
    //How to make this work,i don't want to loop it???
    PriceMachine.CalculateAllPrice(cart.Computers,() => ComputerConverter(??));
}

public void ComputerConverter(Computer comp)
{
    if (comp.Memory <= 2)
        comp.Discount = 10;
}

解决方法

你的CalculatePrice方法不应该只采取Action,IMO – 两种方法都应该采取Action< Computer>.所以我会有这样的方法:

public static void CalculatePrice(Computer computer,Action<Computer> action)
public static void CalcuateAllPrices(IEnumerable<Computer> computers,Action<Computer> action)

并称他们为:

PriceMachine.CalculatePrice(cart.Computers[0],ComputerConverter);
PriceMachine.CalculateAllPrice(cart.Computers,ComputerConverter);

(编辑:李大同)

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

    推荐文章
      热点阅读