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

时间:2013-08-30 16:12:25

标签: c# visual-studio visual-studio-2012

我有一个if语句,如果两个或多个条件= true,我希望它是真的。我尝试使用&&运营商,但VS2012只是抱怨说,

错误运营商'&&'不能应用于'bool'和'Microsoft.Exchange.WebServices.Data.DelegateFolderPermissionLevel'

类型的操作数

我尝试了三种方法:

if (item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor && item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor)
            {

                item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;

            }

     if (item.Permissions.CalendarFolderPermissionLevel && item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor)
            {
                item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
            }

if ((item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor) && (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))
            {
                item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
            }

无法在网上找到任何有用的内容。我该怎么写这样的陈述?只有一个条件才能正常工作..

2 个答案:

答案 0 :(得分:1)

尝试在每个条件周围加上括号:

if ((item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor) && 
    (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))
{
    item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
}

答案 1 :(得分:1)

Mr.p.s.w.g是对的,它可以解决您的问题,但我在这里告诉您代码中的问题是什么 你的前两个试试

if (item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor && item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor)

if (item.Permissions.CalendarFolderPermissionLevel && item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor)

因为您不了解运营商的优先顺序而失败 使用此链接http://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx

  

编译器将其解释为 TRUE&& item.Permissions.InboxFolderPermissionLevel

在第一种情况下,同样对另一种情况也是如此,这就是为什么它会给你错误

和你的第三次尝试

if ((item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor) && (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))

第一个条件的运算符将是“==”而不是“=”:) “=”对于vb.net我猜。
我希望你现在清楚了 你的答案将由p.s.w.g

给出
 if ((item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor) && 
    (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))
{
    item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
}