使用一个Func对象,编译错误了,帮忙纠正一下!
下面这句话:
var s = new Func<sbyte, object>(sbyte.Parse);
编译有错:
error CS0123: No overload for 'Parse' matches delegate 'System.Func<sbyte,object>'
应该怎么把sbyte.Parse传递给一个Func作为构造参数呢? 谢谢。
------解决方案--------------------sbyte.Parse()是一个方法,你的输入参数是一个sbyte
------解决方案--------------------Func<string, sbyte> s = new Func<string, sbyte>(sbyte.Parse);
------解决方案--------------------sbyte.Parse方法有四个重载,没有一个是 sbyte Parse(object obj)
不知道你的Func<sbyte, object>是谁告诉你的
------解决方案--------------------Func<string, byte> s = new Func<string, byte>(x => byte.Parse(x));
byte b = s(sbyte);
------解决方案--------------------Func最后一个类型参数是返回值的,如果只有一个,那么就没有传入参数
------解决方案--------------------var s = new Func<string,sbyte>(sbyte.Parse);这样可以
------解决方案-------------------- var s = new Func<sbyte, object>(
x=>
{
return sbyte.Parse("2") ;
});