C# PropertyInfo参数与需求
是否可以将C# PropertyInfo参数与需求,c#,reflection,C#,Reflection,是否可以将PropertyInfo(或类似内容)作为参数,并要求PropertyInfo的类型为decimal?或者更好地要求它是特定类或接口的属性?我的想法与typescript的keyof 这正是我所希望的 public decimal SumProperty(Item item, PropertyInfo propertyOfItem){ // has to be casted to decimal? return propertyOfItem.GetValue(item)
PropertyInfo
(或类似内容)作为参数,并要求PropertyInfo的类型为decimal
?或者更好地要求它是特定类或接口的属性?我的想法与typescript的keyof
这正是我所希望的
public decimal SumProperty(Item item, PropertyInfo propertyOfItem){
// has to be casted to decimal?
return propertyOfItem.GetValue(item);
}
您可以显示预期用途吗?但一般来说,您不能要求属性为具有当前签名的某种类型,但可以检查它是否具有
PropertyInfo.PropertyType
。您还可以将属性选择器与Func
-SumProperty(Item Item,Func selector)
一起使用,并将其称为selector(Item)
(在所提供的情况下,这有点出乎意料)。简言之,不,C不允许限制类的值,只限制类变量的值。不过,您可以在运行时添加检查。另一种方法是使用Func
。或者,如果确实需要PropertyInfo
,可以从表达式中提取它