AGu*_*ald 1 c# delegates types
我有两节课.
public class Handler
{
delegate T ReturnDelegate();
public T HandleReturnMethod(ReturnDelegate d)
{
DoSomething(); //some other stuff
return d();
}
}
public partial class Test
{
protected int Id
{
get
{
return new Handler().HandleReturnMethod(delegate()
{
int id = 1;
return id;
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够处理Handler类中的任何Type.但'T'似乎不起作用,int无法转换为它.如果有更好的方法或有什么问题,请评论.
您需要创建委托类型和方法以使用泛型.就个人而言,我会使用标准代表:
public T HandleReturnMethod<T>(Func<T> d)
{
DoSomething(); //some other stuff
return d();
}
Run Code Online (Sandbox Code Playgroud)
鉴于上述情况,您的代码应该有效:
protected int Id
{
get
{
return new Handler().HandleReturnMethod(() =>
{
int id = 1;
return id;
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |