gpt4 book ai didi

c# - 错误 : 'object' does not contain a definition for 'methodName'

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:46 25 4
gpt4 key购买 nike

我需要传递从不同类实例化的不同对象,它们具有同名函数,我想调用该函数。

例如:

Class1 object1;
Class2 object2;
Class3 object3;

Object object = object1;
object1->functionname();

Object object = object2;
object2->functionname();

Object object = object3;
object3->functionname();

这在 C# 中是不可能的...

在 PHP 中,这非常简单,您可以像上面的示例一样使用对象来完成,但在 C# 中,我收到此错误:错误:“对象”不包含“方法名称”的定义

虽然在对象对象上调用任何方法名称都是合法的!因为它不知道里面到底是什么。

我该怎么做?

最佳答案

创建两个类都实现的接口(interface)。
然后通过接口(interface)类型将对象传递给函数:

interface IAnimal
{
void Speak();
}

class Cat : IAnimal
{
public void Speak()
{
MessageBox.Show("Meow!");
}
}

class Dog : IAnimal
{
public void Speak()
{
MessageBox.Show("Woof!");
}
}


static class Program
{

static void SpeakPlease(IAnimal animal)
{
animal.Speak();
}
//...
}

关于c# - 错误 : 'object' does not contain a definition for 'methodName' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4443604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com