c# - C# 创建泛型函数列表
问题描述
我想创建一个可以接受任何类型的类变量的函数列表。像这样的东西。但我不知道我怎么能做到这一点。
- 这是声明将接受类变量的泛型函数的正确方法吗?
- 如何添加通用函数以返回列表?我在下面尝试过,但这也无济于事
public List<MyFunction<T>> GetMyFunctionList<T>() where T : struct, TextFragment
public class MyFunction<T>
{
public MyFunction(Func<T, string> functionName)
{
this.FunctionName = functionName;
}
public Func<T, string> FunctionName { get; set; }
}
public class MyClass
{
int var1;
Bar var2;
public MyClass (int var1, Bar var2)
{
this.var1 = var1;
this.var2 = var2;
}
public List<MyFunction> getMyFunctionList(){
return new List<MyFunction> // throws error - "using generic type returns one type argument
{
this.Foo1(var1),
this.Foo2(var2)
}
}
public MyFunction<int> Foo1(int var1)
{
return new MyFunction((i) => {
int res = var1*2;
return res.ToString()
})
}
public MyFunction<Bar> Foo2(Bar var2)
{
return new MyFunction((i) => {
return var2.ToString() + " value";
})
}
}
解决方案
推荐阅读
- c# - 原始 Sql 查询不起作用实体框架
- database - Deno 使用 $lookup 和 $project 与 mongoDB 聚合
- javascript - Reactjs - 加载翻译文件时出错
- typescript - 在 Cypress 中存储访问令牌 - Cypress OAuth 2.0
- google-api - 访问整个 gsuite 域日历事件
- c# - ToolStripLabel 未使用 PropertyBinding 更新应用程序设置
- python - Django:使用公共外键链接两个模型
- python - 审核 url 为允许的方案打开。允许使用文件/或自定义方案通常是出乎意料的
- php - 在不安装 MS SQL 驱动程序的情况下使用 php_pdo_sqlsrv 需要哪些 dll
- node.js - NodeJS WebSocket 多路径