从未知类返回字符串

时间:2016-03-10 12:49:02

标签: c# .net arrays object

说我有2个班级:

第1课:

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

第2课:

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

现在在我的mainform中,我有一个对象数组:

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

现在说我想从Test获取object[0]字符串 我该如何检索?

我试过了

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

3 个答案:

答案 0 :(得分:2)

你可以做到

Console.WriteLine(Class1.Test );

,例如

if (Objects[0] is Class1) Console.WriteLine(Class1.Text);

所以你可以[LongPressgesture setMinimumPressDuration:2.0];作为一整段代码。

答案 1 :(得分:2)

首先,你不能在实例上调用任何声明为static的东西。其次,这正是多态性的用途。

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;

答案 2 :(得分:0)

Objects[0].GetType().GetField("Test").GetValue(null);