簡體   English   中英

如何創建一個將泛型類作為參數的方法

[英]How to create a method that takes a generic class as a parameter

我一直在搜索SO和其他地方尋找這個問題的答案,我找不到能幫助我理解我的問題的答案。 我是C#的新手,所以這可能是問題的一部分。

我試圖了解如何將一個類(或一個副本)作為參數傳遞給方法。 但是,我希望這個方法接受我傳遞的任何類,而不是特定的類。

例如:

class Person
{
    public string Name{ get;set; }
}

class Bob : Person
{
    public Bob(){ Name = "Bob"; }
}

class Fred : Person
{
    public Fred(){ Name = "Fred"; }
}

Fred aFred = new Fred();
Bob aBob = new Bob();

// below is where I need the help, I don't know the syntax for what I'm trying to do.
SayName(aBob,aFred);

static public void SayName(person1,person2)
{
    Console.WriteLine(person1.Name + ", " +person2.Name) // I'd like this to output "Bob, Fred"
}

好吧,我知道上面的語法是不正確的,只要將這些類作為參數傳遞或接受它們作為方法的參數,但我希望你能看到我正在嘗試做的事情。 我希望能夠將任何派生自Person的類傳遞給SayName方法,並讓它輸出其名稱恰好是什么。

在此先感謝,任何幫助表示贊賞。

有沒有辦法做到這一點?

只需將它們作為Person傳遞:

static public void SayName(Person person1, Person person2)
{
    Console.WriteLine(person1.Name + ", " +person2.Name) // I'd like this to output "Bob, Fred"
}

Type未在SayName中聲明為參數,似乎是在理解如何傳遞參數時的誤解。 使用兩個參數的人員類型說出代碼將運行的person1和person2

public static void SayName(Person person1, Person person2)
{
    Console.WriteLine(person1.Name + ", " +person2.Name)
}

暫無
暫無

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

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