Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法强制转换类型为';System.Reflection.RuntimePropertyInfo';输入';System.IConvertible';_C# - Fatal编程技术网

C# 无法强制转换类型为';System.Reflection.RuntimePropertyInfo';输入';System.IConvertible';

C# 无法强制转换类型为';System.Reflection.RuntimePropertyInfo';输入';System.IConvertible';,c#,C#,我对以下代码有问题。我正在遍历一个集合,以查看对象是否具有特定的属性类型,如果是,则对其进行一些转换 var props = obj.GetType().GetProperties(); foreach (var p in props) { if (p.PropertyType == typeof(System.Boolean)) { var conv = Convert.ToByte(p); } } 当我尝试运行它时,出现以下错误: “无法将'Sys

我对以下代码有问题。我正在遍历一个集合,以查看对象是否具有特定的属性类型,如果是,则对其进行一些转换

var props = obj.GetType().GetProperties();
foreach (var p in props)
{     
    if (p.PropertyType == typeof(System.Boolean))
    {
    var conv = Convert.ToByte(p);
    }
}
当我尝试运行它时,出现以下错误:


“无法将'System.Reflection.RuntimePropertyInfo'类型的对象强制转换为'System.IConvertible'类型。”

我假设您希望获取属性值并将其转换为字节,对吗?不是财产本身。。。因此:

var conv = Convert.ToByte(p.GetValue(obj, null));
诚然,将其作为
字节而不是
布尔值似乎有些奇怪。。。我本以为:

var conv = (bool) p.GetValue(obj, null);
我个人也会使用:

if (p.PropertyType == typeof(bool))
而不是明确地拼写出
System.Boolean