说我有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
答案 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);