如何使用object[]Index获取GetValue()的具体值
本文关键字:GetValue 获取 object 何使用 Index | 更新日期: 2023-09-27 18:03:23
我在这个对象propValue
中有三个值。下面的代码通过循环我的结果给我所有的值。
如何通过将object[]Index
作为第二个参数传递给prop.GetValue
来获得值?
结果包含bool、object、string类型。这就是为什么我需要得到一个特定的值。
Type myType = result.GetType();
IList<PropertyInfo> props = new List<PropertyInfo>(myType.GetProperties());
tring str = "";
foreach (PropertyInfo prop in props)
{
object propValue = prop.GetValue(result,null);
}
如果所有属性都是object[]
类型,则:
foreach (PropertyInfo prop in result.GetType().GetProperties())
{
// get object[] {bool, object, string} at once
var propValue = (object[])prop.GetValue(result,null);
var index1 = (bool)propValue[0];
var index2 = propValue[1];
var index3 = (string)propValue[2];
}
如果你有不同的属性,那么你可以检查它们的类型。
object
的测试是棘手的,因为所有类型都是对象(从Object
继承)。当其他测试失败时,您不需要测试它,但假设它存在:
foreach (PropertyInfo prop in result.GetType().GetProperties())
{
var propValue = prop.GetValue(result,null);
if(propValue is string)
{
// do something with string
continue; // to skip checking for other types
}
if(propValue is bool)
{
// do something with bool
continue;
}
// do something with object
}
可以用else if
模式代替continue
。