泛型类型的转换问题

dragonimp 2017-09-11 11:32:51

public T Invoke<T>(String APIName)
{
var t=typeof(T);
IntPtr api = GetProcAddress(hLib, APIName);
var d=Marshal.GetDelegateForFunctionPointer(api, t);
return (T)(Object)d; //这就OK
return (T)d; //这就不行。为啥呢??理论上没有什么区分啊。
}
...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
TearyWang 2017-09-12
  • 打赏
  • 举报
回复
Marshal.GetDelegateForFunctionPointer的返回值是Delegate,Delegate和T之间没有任何的直接联系。编译器也不会推导
threenewbee 2017-09-11
  • 打赏
  • 举报
回复
var d= -> Object d =

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧