日期:2014-05-16  浏览次数:20814 次

使用一个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") ;
                });