【发布时间】:2018-03-20 01:38:15
【问题描述】:
我想根据从配置文件(XML 文件,仅供参考)中提取的值来测试条件。我有这样的事情要做检查:
List<Condition> conditions = new List<Condition>();
float fVal;
foreach (XmlAttribute attr in conNode.Attributes)
{
switch (attr.Name.ToLower())
{
case "alt_max":
fVal = float.Parse(attr.Value);
conditions.Add((t) => { return t.altitude <= fVal; });
break;
case "alt_min":
fVal = float.Parse(attr.Value);
conditions.Add((t) => { return t.altitude >= fVal; });
break;
....
如果我将条件设置为检查这两个条件,则只有最后一个值会保留。浏览器
<condition alt_max="0.3" alt_min="0"/>
我想要做的是查看值(在这种情况下为t.altitude)是否在 0 和 0.3 之间。我实际上正在做的是测试该值是否相同为 0,因为它必须小于和大于 0,因为 fact that references are sent to lambda functions。两个实例中的值 fVal 都是 0,所以它必须是 >=0 和 <=0。
我真的很苦恼如何设置它,以便我可以正确测试我的条件。有什么建议吗?
【问题讨论】:
-
“测试值是否为0”是什么意思?
-
好吧,我很困惑。您说您要测试该值是否在 0 和 0.3 之间,并且还要测试它是否 >= 0 和
-
我想测试它是否在0到0.3之间。我实际上正在做的是测试它是否在 0 和 0 之间,因为 lambda 函数/引用的东西。无论如何,我认为这个谜团已经解决了!
标签: c# lambda conditional