簡體   English   中英

C#如何對泛型類型的兩個類使用一種方法?

[英]C# How to use one method for two classes with Generic type?

我需要將兩種不同的打印方法合並為一種。 我有兩個通用類和我自己的通用列表類。 假設我有

static void Print(string fv, MyListClass<Module> A,
            string top)
 and static void Print2(string fv, MyListClass<Student> A,
            string top)

方法的內部是相同的,但是如何使其成為一種方法,並且在Main class中我選擇要打印的是一個類列表的參數,或者Module或Student。 我的數據在:

MyListClass<Student> Stud; 
MyListClass<Module> Mod;

我有兩個 通用 類和我自己的通用列表類。

您為什么有自己的列表類? 您通常不應該。 假設它實現IEnumerable<T>

ModuleStudent使用要打印的屬性實現一個公共接口,例如IPrintable

public interface IPrintable
{
    string Name { get; }
    string Description { get; }
}

public class Module : IPrintable { ... }
public class Student : IPrintable { ... }

現在創建一個帶有通用參數的方法:

void Print<T>(string fv, IEnumerable<T> A, string top)
    where T : IPrintable
{
    foreach (var item in A)
    {
        Console.WriteLine(item.Name + ": " + item.Description);
    }
}

為此,您只需創建一個基類,從中派生Module和Student類,然后在單個方法的簽名中使用基類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM