我試圖在函數和動作上使用Convert方法,所以我可以避免編寫重複方法在Func類型的委託中進行。轉換方法來自Convert Action<T> to Action<object>動態地將Func轉換爲相應的動作
public class Program
{
static void Main(string[] args)
{
var program = new Program();
var mi = program.GetType().GetMethod("Function", BindingFlags.Instance | BindingFlags.Public);
// Can be any version of Func
var funcType = typeof(Func<int, int>);
// Create action delegate somehow instead
var del = mi.CreateDelegate(funcType, null);
// Or dynamically convert the Func to a corresponding Action type (in this case Action<int>)
}
// Or find a way to pass it in as a parameter here
public Action<object> Convert<T>(Action<T> action)
{
return o => action((T)o);
}
public int Function(int five)
{
return five;
}
}
你的代碼有什麼問題?它是否按照您期望的方式工作? – dasblinkenlight
操作沒有返回類型 –
我的代碼沒有問題,它的寫法是爲了提高理解力。我只是想動態地將一個Func變量轉換爲相應的Action變量。 – Martin