C#-数组中的类的多态性

凯文·尼兰德

我试图对对象数组中的类实例使用多态性:

ClassA a = new ClassA();
ClassB b = new ClassB();

Object[] classes = new Object[] { a, b };

其中一个类的示例为:

public class ClassA 
{
    public string PrintOutput()
    {
        return "254,62,455,5,15,62,656";
    }
}

我尝试过类似的操作:C#类多态

这个人遇到的问题是他们创建了一个类型A的数组(类之一)。将数组类型更改为Object会导致错误:找不到不包含方法定义的对象/没有接受类型为object的第一个参数的可访问扩展方法。

编辑:此刻,我只是想打印每个类中方法的输出:

foreach (Object obj in classes)
{
    Console.WriteLine(obj.PrintOutput());
}

obj.PrintOutput()是出现上述错误的地方。

羊毛

一种方法是使用通用接口

public interface IPrintOutput
{
    string PrintOutput();
}

public class ClassA : IPrintOutput
{
    public string PrintOutput()
    {
         return "254,62,455,5,15,62,656";
    }
}

public class ClassB : IPrintOutput
{
    public string PrintOutput()
    {
         return "something else";
    }
}

IPrintOutput[] classes = new IPrintOutput[] { a, b };

重写ToString并使用它的第二种方法(每个对象都有ToString)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章