我一直在寻找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方法,并让它输出其名称恰好是什么。
在此先感谢,任何帮助表示赞赏。
有办法做到这一点吗?
答案 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)
}