C# 声明具有两个泛型参数的方法

C# 声明具有两个泛型参数的方法,c#,C#,正在尝试执行以下操作: public static class Qbo<T> where T : class { public static List<Items> Convert(List<T> list1, List<T> list2) { // Merging lists of different types into one list } } 公共静态类Qbo,其中T:class { 公共静态列表

正在尝试执行以下操作:

public static class Qbo<T> where T : class
{
    public static List<Items> Convert(List<T> list1, List<T> list2)
    {
         // Merging lists of different types into one list
    }
}
公共静态类Qbo,其中T:class
{
公共静态列表转换(列表列表1、列表列表2)
{
//将不同类型的列表合并到一个列表中
}
}
这样称呼:

var items = Qbo<Bill>.Convert(bills, billPayments);
var moreItems = Qbo<Invoice>.Convert(invoices, payments);
var items=Qbo.Convert(票据、账单和付款);
var moreItems=Qbo.转换(发票、付款);
但是我得到一个错误,因为该方法试图接受第一个列表类型作为第二个列表类型。有什么想法吗?

当您希望类型参数有不同的数据类型时,您也应该以不同的方式声明它们:

public static List<Items> Convert<T, U>(List<T> list1, List<U> list2)
公共静态列表转换(列表1、列表2)
您还应该注意,您必须向上述方法声明本身添加类型参数,除非它们尚未通过您所在的类声明。

当您希望类型参数具有不同的数据类型时,您也应该以不同的方式声明它们:

public static List<Items> Convert<T, U>(List<T> list1, List<U> list2)
公共静态列表转换(列表1、列表2)

您还应该注意,您必须向上述方法声明本身添加类型参数,除非它们尚未通过您所在的类声明。

我假设您的参数属于不同的类型,因此您将使用多个泛型。我认为应该是这样的

public static List<Items> Convert<T, U> (List<T> list1, List<U> list2)
{
}
公共静态列表转换(列表1、列表2)
{
}
下面是关于泛型的文档,它应该涵盖具有多个泛型的方法。

我假设您的参数是不同类型的,因此您将使用多个泛型。我认为应该是这样的

public static List<Items> Convert<T, U> (List<T> list1, List<U> list2)
{
}
公共静态列表转换(列表1、列表2)
{
}
下面是关于泛型的文档,它应该涵盖具有多个泛型的方法。

通过您的编辑,您需要的内容会更加清晰。您已经从类定义中获得了
T
,但是现在需要为该方法创建另一个泛型类型。因此,也要使方法调用通用:

public static class Qbo<T> where T : class
{
    public static List<Items> Convert<U>(List<T> list1, List<U> list2)
    //                               ^^^                    ^^^
    {
         // Merging lists of different types into one list
    }
}
公共静态类Qbo,其中T:class
{
公共静态列表转换(列表列表1、列表列表2)
//                               ^^^                    ^^^
{
//将不同类型的列表合并到一个列表中
}
}

通过您的编辑,您需要的内容会更加清晰。您已经从类定义中获得了
T
,但是现在需要为该方法创建另一个泛型类型。因此,也要使方法调用通用:

public static class Qbo<T> where T : class
{
    public static List<Items> Convert<U>(List<T> list1, List<U> list2)
    //                               ^^^                    ^^^
    {
         // Merging lists of different types into one list
    }
}
公共静态类Qbo,其中T:class
{
公共静态列表转换(列表列表1、列表列表2)
//                               ^^^                    ^^^
{
//将不同类型的列表合并到一个列表中
}
}

然后声明两个泛型类型:
Convert(…)
出现了什么错误?什么是
bills
payments
数据类型?您正在声明这两种列表类型是相同的-
T
。现在这个方法甚至不会编译,除非它包含在一个带有type T参数的泛型类中。所以当您获得正确的方法签名时,我很好奇您将在其中做什么,特别是当您似乎知道返回类型时。然后声明两个泛型类型:
Convert(…)
您会得到什么错误?什么是
bills
payments
数据类型?您正在声明这两种列表类型是相同的-
T
。现在这个方法甚至不会编译,除非它包含在一个带有type T参数的泛型类中。所以当您获得正确的方法签名时,我很好奇您将在其中做什么,特别是你似乎知道返回类型。这几乎与发布的答案相同,甚至我在上面的评论……此外,链接并不像在VB中那样有用,更重要的是,它不处理带有泛型类型参数的方法,而是处理带有类型参数的类。这与发布的答案几乎相同,甚至我在上面的评论……此外,链接并不像在VB中那样有帮助,更重要的是,它不处理带有泛型类型参数的方法,而是处理带有类型参数的类。