其中ColorMethod,Approach,GroupName均为string,VolumnReagent为int,上述程序该如何修改?
时间: 2024-12-23 17:19:09 浏览: 0
如果`ColorMethod`, `Approach`, `GroupName` 的类型已经明确为`string`,而`VolumnReagent` 类型为`int`,那么我们可以直接在`CheckAttributeConsistency` 方法中使用对应的属性获取值,无需额外转换。这里假设`allowedValues`集合或枚举已经包含了所有允许的颜色方法、处理方式、试剂组名和加液量范围。下面是修改后的代码示例:
```csharp
private bool CheckAttributeConsistency(IEnumerable<dynamic> items, string propertyName, string errorMessage) {
var distinctValues = items.Select(x => x.GetType().GetProperty(propertyName)?.GetValue(x, null)).Distinct();
if (distinctValues.Count() > 1)
{
ServiceUtils?.UpdateMainToolTips($"{deviceName}玻片检查:模块{ModuleName}.{errorMessage}");
AlertUtil.Show($"玻片检查", $"{deviceName}模块{ModuleName}: {propertyName}有不一致");
return false;
}
return true;
}
// 调用时传入正确的属性名称
private bool CheckAllGlassesProgramStageIsOK(bool[] glsLoad) {
//...
if (!CheckAttributeConsistency(filteredGlassRunInfo, "ColorMethod", "染色方式不同") ||
!CheckAttributeConsistency(filteredGlassRunInfo, "Approach", "处理方式不同") ||
!CheckAttributeConsistency(filteredGlassRunInfo, "GroupName", "使用的试剂组不同") ||
!CheckAttributeConsistency(filteredGlassRunInfo, "VolumnReagent", "试剂加液量不同"))
{
return false;
}
return true;
}
```
阅读全文