Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在方法中访问委托_C#_Func - Fatal编程技术网

C# 在方法中访问委托

C# 在方法中访问委托,c#,func,C#,Func,我试图实现一个接口,它有这样的方法 public object GetOrCreate<T>(string key, Func<ICacheEntry, T> func) { } public对象GetOrCreate(字符串键,Func-Func) { } 从方法声明中,我发现传递了ICacheEntry和genericT类型对象。也许有人可以帮助理解如何在方法中访问这两个参数?如下: public object GetOrCreate<T>(stri

我试图实现一个接口,它有这样的方法

public object GetOrCreate<T>(string key, Func<ICacheEntry, T> func)
{

}
public对象GetOrCreate(字符串键,Func-Func)
{
}
从方法声明中,我发现传递了
ICacheEntry
和generic
T
类型对象。也许有人可以帮助理解如何在方法中访问这两个参数?

如下:

public object GetOrCreate<T>(string key, Func<ICacheEntry, T> func)
{
   ICacheEntry someCacheEntry = ...;

   T someTinstance = func(someCacheEntry);

   return (object)someTinstance;
}
public对象GetOrCreate(字符串键,Func-Func)
{
ICacheEntry someCacheEntry=。。。;
T someTinstance=func(someCacheEntry);
返回(对象)某个位置;
}
func
是委托方法参数

T
是泛型类型参数,它不是真正的类型,它是未知类型的passe partout可替换参数
T
来自单词模板

您可能需要阅读以下教程:

要学习C#,请执行以下操作:


这里的任何人都无法决定性地告诉您如何处理键参数,您需要查阅文档或使用此方法来确定键的用途。不过我可以猜测,这是某种字典方法,在这种情况下,键用于通过一个键来区分几个不同值的缓存。@OlivierRogier不确定您的答案为什么被否决,但它起作用并解释了很多。非常感谢。主意也许关键是用来获取这样的ICacheEntry:
ICacheEntry someCacheEntry=someProvider(key,…)