gpt4 book ai didi

c# - 具有不同类实例的数组?

转载 作者:行者123 更新时间:2023-11-30 20:23:21 26 4
gpt4 key购买 nike

我想知道是否有一种方法可以访问我在下面的代码中拥有的对象中的不同方法?

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
_test[0] = new TallGuy() {Height = 74, Name = "Teddy Long"};
_test[1] = new TallGuy() {Height = 64, Name = "Teddy Shorter"};
_test[2] = new TallGuy() {Height = 54, Name = "Teddy Shortest"};
}

private readonly object[] _test = new object[3];

private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < _test.Length; i++)
{
//_test[i]. I can't call any methods here...
}
}
}
}

我之所以使用 Object 类型而不是一个类的数组,是因为我想在一个数组中存储不同类型的对象。在测试的中途,虽然我注意到我无法访问我已经存储在数组中的对象的方法,因此为什么那里只有一种类型的对象。

最佳答案

您可以通过检查类型并转换它们来访问这些方法:

var obj = _test[i] as TallGuy;
if (obj != null) Console.WriteLine("Height: {0}", obj.Height);

你也可以使用反射。

但是对象的类型有关系吗?也许您应该考虑创建父类(super class)的公共(public)接口(interface)并定义该类型的对象数组。

关于c# - 具有不同类实例的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052214/

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