如何创建以泛型类作为参数的方法

本文关键字:参数 方法 泛型类 何创建 创建 | 更新日期: 2023-09-27 17:50:57

我一直在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方法,并让它输出它的名称。

提前感谢,任何帮助都是感激的。

有办法做到这一点吗?

如何创建以泛型类作为参数的方法

将它们作为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中声明为参数,这似乎是对如何传递参数的理解上的误解。对两个参数都使用Person类型例如person1和person2代码将运行

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