gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:28:37 31 4
gpt4 key购买 nike

我想将条件作为 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);

关于C# Action<T>,将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857462/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com