1
public static string GetTreeJsonByList<T>(List<T> list, Func<T, bool> filter, string pn, string In)
{
    //这个泛型方法在调用的时候,怎样传参才不会报错啊,我怎么写都不对,还望大佬指教
}
Unique 813
2018-05-24 提问
1

拿张纸把你的泛型参数T换成你你想调用的版本中使用的类型,如Int32。Func<T,bool>委托需要你自己定一个返回值为bool类型,参数类型为T的函数,并把函数名传递进去,可以是lambda (匿名)函数。建议对泛型T进行约束,否则编译器会给你各种报错,约束就不和你说了,有点多。

conyc · 2018年05月24日

添加评论
1 个回答
0

已采纳

给你写了一个.NET Core 2的调用示例,供参考:

using System;
using System.Collections.Generic;

namespace GenericMethodDemo {
    class Program {
        static void Main (string[] args) {
            var trees = new List<Tree> { };

            //以下为调用GetTreeJsonByList方法的2个示例

            // 1.filter参数为null
            var result1 = GetTreeJsonByList (trees, null, "pn", "In");
            Console.WriteLine ($"result 1:{result1}");

            // 2.filter参数不为null
            var result2 = GetTreeJsonByList (trees, x => x.Id > 100, "pn", "In");
            Console.WriteLine ($"result 2:{result2}");

            Console.ReadKey ();
        }

        public static string GetTreeJsonByList<T> (List<T> list, Func<T, bool> filter, string pn, string In) {
            //这个泛型方法在调用的时候,怎样传参才不会报错啊,我怎么写都不对,还望大佬指教
            return "output";
        }
    }

    public class Tree {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Sort { get; set; }
    }
}
注:以上调用示例中的泛型T即为:Tree这个实体对象。

如果还有.NET开发的相关问题,可以去: 专注.NET开发的编程爱好者社区--图享网 寻找答案。在.NET的开发中,帮助你找到疑难问题的更优美、更高级的解决方案

撰写答案

你可能感兴趣的

推广链接