public override object GetValue(object obj) { if (this.m_typeCode != 0) { IPropertyStore propertyStore = ((ReportObject)obj).PropertyStore; switch (this.m_typeCode) { default: return(propertyStore.GetObject(this.m_index)); case PropertyTypeCode.Boolean: return(propertyStore.GetBoolean(this.m_index)); case PropertyTypeCode.Integer: return(propertyStore.GetInteger(this.m_index)); case PropertyTypeCode.Size: return(propertyStore.GetSize(this.m_index)); case PropertyTypeCode.Enum: { int integer = propertyStore.GetInteger(this.m_index); return(Enum.ToObject(base.Type, integer)); } case PropertyTypeCode.ValueType: { object obj2 = propertyStore.GetObject(this.m_index); if (obj2 == null) { obj2 = Activator.CreateInstance(base.Type); } return(obj2); } } } return(this.m_property.GetValue(obj, null)); }