所以,我在这里有这个程序:
public delegate R ReturnObject<out R>();
static void Main(string[] args)
{
ReturnObject<object> returnObject1 = ReturnObj;
ReturnObject<string> returnString1 = ReturnString;
ReturnObject<int> returnInt = ReturnInt;
returnObject1 = ReturnString;
Console.ReadLine();
}
static object ReturnObj() { return new object(); }
static string ReturnString() { return "hello"; }
static int ReturnInt() { return 1; }
这有效。但是当我这样做时:
returnObject1 = returnInt;
给我一个错误,说“ ReturnInt的返回类型错误”或类似的东西。但为什么?可以将Int转换为对象,对不对?
谢谢