我希望了解并解决prop
范围内PropertyInfo
类foreach
foreach (var prop in props) // For each of type's properties
if (prop.GetCustomAttributes(typeof(Mappable)).Any())
mapSwitch = 1;
if (isLevelMatch(isContinueToGetData, mapSwitch, props))
{
if (model.GetType().GetProperty(prop.Name).GetValue(obj) != null)
comModel.FieldValueLet(prop.Name, model.GetType().GetProperty(prop.Name).GetValue(obj));
else
comModel.FieldValueLet(prop.Name, DBNull.Value);
}
的原因。
代码:
IF
Visual Studio编译器告诉我在第二个prop
语句中这个NSSetUncaughtExceptionHandler
不存在?任何人都可以解释为什么会这样吗?
答案 0 :(得分:3)
您需要使用foreach块的括号:
foreach (var prop in props) // For each of type's properties
{
if (prop.GetCustomAttributes(typeof(Mappable)).Any())
mapSwitch = 1;
if (isLevelMatch(isContinueToGetData, mapSwitch, props))
{
if (model.GetType().GetProperty(prop.Name).GetValue(obj) != null)
comModel.FieldValueLet(prop.Name, model.GetType().GetProperty(prop.Name).GetValue(obj));
else
comModel.FieldValueLet(prop.Name, DBNull.Value);
}
}
答案 1 :(得分:0)
您没有任何花括号来表示要为.def("append", FunctionPointer([] (Cube& self, const bp::object& obj)
{
self.insert(std::make_pair(bp::extract<int>(obj[0]),bp::extract<int>(obj[1])));
}))
中的每个prop
运行的代码块。因此,只有紧接着的下一个陈述是。
如果您将大括号添加到当前代码的评估方式,它将如下所示:
props
当您拨打foreach (var prop in props) // For each of type's properties
{
if (prop.GetCustomAttributes(typeof(Mappable)).Any())
{
mapSwitch = 1;
}
}
if (isLevelMatch(isContinueToGetData, mapSwitch, props))
{
if (model.GetType().GetProperty(prop.Name).GetValue(obj) != null)
{
comModel.FieldValueLet(prop.Name, model.GetType().GetProperty(prop.Name).GetValue(obj));
}
else
{
comModel.FieldValueLet(prop.Name, DBNull.Value);
}
}
电话时,comModel.FieldValueLet
已经超出了很长一段时间。