1

2 つ以上の条件 = true の場合に true にしたい if ステートメントがあります。&& 演算子を使用してみましたが、VS2012 は次のように不平を言います。

エラー演算子 '&&' は、タイプ 'bool' および 'Microsoft.Exchange.WebServices.Data.DelegateFolderPermissionLevel' のオペランドに適用できません

私は3つの方法を試しました:

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;
            }

ネット上で役立つものは見つかりませんでした。そのような声明を書くにはどうすればよいでしょうか。1つの条件だけでうまく機能します..

4

2 に答える 2

2

各条件を括弧で囲んでみてください:

if ((item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor) && 
    (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))
{
    item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
}
于 2013-08-30T16:13:33.437 に答える
1

Mr.pswg は正しいです。それはあなたの問題を解決するかもしれませんが、私はあなたのコードの何が問題だったのかをお伝えするためにここにいます
あなたの最初の 2 つの試み

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

最初のケースでは、他のケースでも同じです。そのため、エラーが発生します

そしてあなたの3回目の試み

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

最初の条件の演算子は "==" ではなく "=" :)
"=" は vb.net 用です。
私はあなたが今明確
であり、あなたの答えがpswgによって与えられたものになることを願っています

 if ((item.Permissions.CalendarFolderPermissionLevel != DelegateFolderPermissionLevel.Editor) && 
    (item.Permissions.InboxFolderPermissionLevel != DelegateFolderPermissionLevel.Editor))
{
    item.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Editor;
}
于 2013-08-31T16:30:39.340 に答える