繁体   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