我如何在c#中编写一个通用函数,它将根据类的类型调用不同的函数
本文关键字:函数 调用 类型 一个 | 更新日期: 2023-09-27 18:25:41
我有以下通用类:
public class SearchModel<T>
{
public string Name { get; set; }
public int? UserId { get; set; }
public List<T> result { get; set; }
}
public class A{
..
..
}
public class B{
..
..
}
SearchModel类中的List可以是A/B类型。现在我有了这两个函数调用,它们给了我适当的结果。
public List<A> SearchApplicationsForA(SearchModel<A> model){
}
public List<B> SearchApplicationsForB(SearchModel<B> model){
}
我想知道我是否可以编写一个通用函数,它可以识别T的类型并调用相应的函数。例如
public List<T> SearchApplications<T>(SearchModel<T> model)
{
if (typeof(T) == typeof(A))
{
return SearchVerificationsForA(model);
}
else if (typeof(T) == typeof(B))
{
return SearchApplicationsForB(model);
}
}
有可能编写这样的函数吗?
你能不能不
public List<A> SearchApplications(SearchModel<A> model) {
return SearchVerificationsForA(model);
}
public List<B> SearchApplications(SearchModel<B> model) {
return SearchVerificationsForB(model);
}
甚至不去测试类型?
您应该考虑以下语法:
public List<T> SearchApplications<T>(SearchModel<T> model)
{
if (model is A)
{
return SearchVerificationsForA(model);
}
else if (model is B)
{
return SearchApplicationsForB(model);
}
}