gpt4 book ai didi

c# - 处理任何类型的方法

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:45 25 4
gpt4 key购买 nike

我有两个类(class)。

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;
});
}
}
}

我希望能够处理 Handler 类中的任何类型。但是 'T' 似乎不起作用,无法将其转换为 int。如果有更好的方法或者这里有什么不对的地方欢迎评论。

最佳答案

您需要创建委托(delegate)类型和方法才能使用泛型。就个人而言,我会为此使用标准委托(delegate):

public T HandleReturnMethod<T>(Func<T> d)
{
DoSomething(); //some other stuff
return d();
}

鉴于以上情况,您的代码应该可以工作:

protected int Id
{
get
{
return new Handler().HandleReturnMethod(() =>
{
int id = 1;
return id;
});
}
}

关于c# - 处理任何类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5541573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com