我有一组要与特定类 Node 的实例关联的可调用对象。 Node 的每个实例仅需要持有一个可调用对象,并且可以从成员函数中调用它。假设A,B和C是可调用的,它们可能具有不同的函数签名:
Node n1,n2,n3;
n1.associate(A);
n2.associate(B, 42);
n3.associate(C, "foo");
//...
n1.mem_fn(); //will call A at some point inside some_other_fn()
n2.mem_fn(); //will call B, passing 42 as argument
//...
n1.associate(C, "bar");
n1.mem_fn(); //now C will replace A, and be called from n1::mem_fn() with arg "bar"
我该如何完成?可调用对象的返回类型可能不同。
答案 0 :(得分:0)
无需再使用Locations.ForEach(a => a.Name = a.Name.Replace(@"/", @" ").Replace(@"\", @" ");
。 Lambda非常易于使用,可以快速生成可调用对象,该对象还可以根据需要存储任何类型的数据。
std::bind