运营商&&'不能应用于'bool'类型的操作数

时间:2009-12-11 22:10:05

标签: c#

if ((!s.IsValidCashFlow) && (s.Cash.InvalidCashFlowReason == InvalidCashFlowReason.IAmAPoorMF))

我猜你不能在C#中做到这一点? isValidCashFlow是一个bool属性

更新

错误实际上在我的.ascx中,错误的地方:

<div id="Div1" " runat="server" visible="<%#(!Container.DataItem.IsValidCashFlow && (Product)Container.DataItem.Product)InvalidCashFlowReason == InvalidCashFlowReason.IAmAPoorMF %>"> 

已解决:我在编译器混淆时添加了extra():

<div id="Div1" " runat="server" visible="<%#(!Container.DataItem.IsValidCashFlow && ((Product)Container.DataItem.Product)InvalidCashFlowReason == InvalidCashFlowReason.IAmAPoorMF) %>">

3 个答案:

答案 0 :(得分:3)

您可以在布尔之间应用&&。条件中的所有内容都会评估为bool,因此如果&&有效,则会将其应用于多个bool值。

答案 1 :(得分:1)

你绝对可以这样做,但必须有其他事情发生。您能提供更完整的代码示例,并打印编译器错误吗?

答案 2 :(得分:0)

无法重现:

var t = new { InvalidCashFlowReason = InvalidCashFlowReason.IAmAPoorMF};
var s = new {IsValidCashFlow = true, Cash = t};
if ((!s.IsValidCashFlow) &&
    (s.Cash.InvalidCashFlowReason == InvalidCashFlowReason.IAmAPoorMF))
{}

您使用的完全编译器版本是什么?还有其他不妥之处吗?