gpt4 book ai didi

c# - 泛型和 Action 委托(delegate)

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

我有以下代码:

public void generate()
{
base.generateFoo(Method); // How can i indicate the type here?
}

public void Method<T>(T t , IDictionary<T, SomeObject> coll) : where T : ISomething
{
// do something
}


class MyBase
{
public void generateFoo<T>(Action<T, IDictionary<T, SomeObject>> Method) : where T : ISomething
{
Method.invoke(ObjectThatImplementsT, DictionaryWIthTKey);
}
}

我收到一个错误,比如无法将 ObjectThatImplementsT 转换为 T。

我可以将泛型方法作为参数传递给另一个方法吗?

这里有什么问题?

谢谢。

最佳答案

您可能只需要指定类型:

public void generate()
{
base.generateFoo<YourType>(Method);
}

话虽这么说 - 上面写的代码不会编译,因为 generateFoo 不是泛型方法,也不在泛型类中,所以上面的代码可能不起作用。假设 generateFoo 被定义为通用方法(采用 T 类型)。

关于c# - 泛型和 Action 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5463753/

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