如何创建一个将泛型类作为参数的方法

时间:2014-03-19 21:32:12

标签: c#

我一直在寻找S.O和其他地方寻找这个问题的答案,我找不到能帮助我理解问题的答案。我是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方法,并让它输出其名称恰好是什么。

在此先感谢,任何帮助表示赞赏。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:8)

只需将其传递为Person

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

答案 1 :(得分:0)

Type没有在SayName中声明为参数,似乎是在理解如何传递参数时的误解。对两个参数使用Person类型,例如person1和person 2代码将运行

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