c# - 从未知类返回字符串

标签 c# .net arrays object

假设我有 2 个类:

第 1 类:

public class Class1
{
    public static string Test = "Class1";
}

和第 2 类:

public class Class2
{
    public static string Test = "Class2";
}

现在在我的主窗体中,我有一个对象数组:

object[] Objects = new object[2];
Objects[0] = new Class1();
Objects[1] = new Class2();

现在假设我想从 object[0] 获取 Test 字符串 我该如何取回它?

我试过了

Objects[0].GetType().GetProperty("Test");  //Returns a NullReference

最佳答案

首先,您不能调用实例上声明为静态的任何内容。其次,这正是多态性的用途。

public interface IClass
{
    string Test { get; }
}

public class Class1 : IClass
{
    public string Test
    {
        get { return "Class1"; }
    }
}

public class Class2 : IClass
{
    public string Test
    {
        get { return "Class2"; }
    }
}


IClass[] Objects = new IClass[2];
Objects[0] = new Class1();
Objects[1] = new Class2();

那你就可以了。

var str = Objects[0].Test;

关于c# - 从未知类返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916979/

相关文章:

c# - 在使用母版页的 asp 内容上设置页面标题

c# - 当不满足Where子句时,LINQ扩展方法是否可以使用new().Value创建新的KeyValuePair

c# - Visual Studio 2012 项目总是过时(.cs 已修改)

c# - 无法两次连接到同一个本地 TCP 服务器

.net - 您可以在 OpenRasta 中同时发布文件和资源吗?

php - 将内爆数组从mysql拆分为php中的变量

c# - ToString ("F") 相对于 ToString ("G") 是否失去精度?

python - 通过数组过滤DataFrame索引

java - 我试图在我的主要方法中描述和初始化一个二维数组

C# AWS 无法加载文件或程序集 'AWSSDK