C# CTS中询问如何完成此c代码
这个问题是在一次采访中提出的。我无法解决这个问题,它是不完整的。在“人类”课程中,什么必须用问号来代替。请帮帮我C# CTS中询问如何完成此c代码,c#,oop,C#,Oop,这个问题是在一次采访中提出的。我无法解决这个问题,它是不完整的。在“人类”课程中,什么必须用问号来代替。请帮帮我 class Dog() { public void run() { Console.WriteLine("Dog runs"); } } class Cat() { public void run() { Console.WriteLine("Cat runs"); } } class Human {
class Dog()
{
public void run()
{
Console.WriteLine("Dog runs");
}
}
class Cat()
{
public void run()
{
Console.WriteLine("Cat runs");
}
}
class Human
{
public void run(???????? x)
{
Console.WriteLine("Human runs");
x.run();
}
}
class Program
{
static void Main()
{
Dog dog=new Dog();
Cat cat=new Cat();
Human human=new Human();
human.run(cat);
human.run(dog);
}
}*
如果允许您更改代码:执行类似操作。 如果没有,请使用dynamic关键字(就像在另一个答案中提到的那样)。顺便说一下:你的语法错了<代码>类Dog()…完全错误。为什么要把
()
放在那里
interface IPet
{
void run();
}
class Dog : IPet
{
public void run()
{
Console.WriteLine("Dog runs");
}
}
class Cat : IPet
{
public void run()
{
Console.WriteLine("Cat runs");
}
}
class Human
{
public void run(IPet x)
{
Console.WriteLine("Human runs");
x.run();
}
}
class Program
{
static void Main()
{
Dog dog=new Dog();
Cat cat=new Cat();
Human human=new Human();
human.run(cat);
human.run(dog);
}
}
如果您不能更改程序的任何其他部分,而不是
??
,则唯一的选择(在修复其他类定义中的语法错误后)是动态
:
public void run(dynamic x)
{
Console.WriteLine("Human runs");
x.run();
}
这是一些奇怪的代码。我讨厌那种没有实际意义的问题……他们要求用问号代替。您添加了一个全新的界面,并使
Dog
和Cat
实现了它。不确定这是否是预期的。不管怎样,这个问题都没有多大意义你是对的。我已经编辑了我的答案。但是使用上面提到的动态关键字。。。真奇怪。谢谢……你说得对。所以。我是对的,但把另一个答案标为正确答案。这有点令人困惑:)。嗯。你是对的。但我无法想象他会做那样的事。因为这不仅仅是奇怪的代码…@matthew是这类狗()right@Rex不,OP在最初的问题中显然有输入错误:类名()
后面不能有空括号。我只是假设这是一个错误,并忽略了它们。class Dog()
-语法错误。这就是他们给你的密码吗?这是一次面试,你觉得问题不完整。为什么不通知他们,并解释为什么你认为这是不完整的?说出你希望在那里完成的问题。