c# - C# 转换动作行动
问题描述
我有一个方法,它接受在Action<List<Car>
该方法的列表中调用的参数。(方法二)
在另一个调用上述方法的方法中,我有一个Action<Car>
作为输入参数。
当方法 2 中的调用发生时,我希望Action<Car>
调用方法 1 中的方法。
我不知道如何转换Action<Car>
为Action<List<Car>
没有在仅对 Car 具有操作的方法中调用的东西。
示例(http://rextester.com/STWWVO99830):
class Program
{
public static void Main(string[] args)
{
var car = ExpectCar(model =>
{
foreach (var type in model.Types)
{
type.Name = "SuperStarShineType";
}
});
}
public static Car ExpectCar(Action<Car> preProcessor)
{
var car = new Car();
preProcessor.Invoke(car);
var carList = new List<Car> { car };
var carActionList = new Action<List<Car>>(list => list = carList);
return ExpectCars(carActionList).Single();
}
public static List<Car> ExpectCars(Action<List<Car>> preProcessor)
{
var carList = new List<Car> {
new Car {
Types = new List<Type> {
new Type {Name = "SuperCar"}
}
}
};
preProcessor.Invoke(carList);
return carList;
}
}
class Car
{
public List<Type> Types { get; set; }
}
public class Type
{
public string Name { get; set; }
}
它给了我一个空引用异常,因为类型是空的,因为我很早就调用了。调用只需要在第二种方法中发生。
解决方案
推荐阅读
- python - 熊猫根据几列减去数据框中的行
- jmeter - 无需登录多次验证令牌
- javascript - 如何在 HTML 中使用数据属性名称和值 - 略
- javascript - 创建一个带有钳位和焦点的 React CSS 对象
- easyadmin - 如何使用 EasyAdmin 2 和 A2lix TranslationFormBundle 将文本编辑器类型用于翻译类型
- python - 从未等待协程 discord.py
- javascript - 反应原生:swiper,第一次显示时出现问题
- javascript - Bootstrap 5.1.3 导航栏点击后不折叠
- amazon-web-services - 使用 ~/.aws/credentials 和 ~/.aws/config 的问题
- kubernetes - 如何禁用 prometheus-operator 堆栈上的服务监控