2013-12-11 78 views
0

我有以下的代碼工作:如果條件在csharp中,最好的方法是什麼?

if (user.ReAccess == 1 || user.CetAccess == 1) 
     { 
     } 
     else 
     { 
      //Do Something 
     } 

但是,理想情況下,我想這樣做(如果不是)。但是這有語法錯誤。

if !(user.ReAccess == 1 || user.CetAccess == 1) 
     { 
    //Do Something 
     } 
+2

您可以使其工作,只需添加一些括號 – harold

回答

5

最直接的方法是這樣:

if (!(user.ReAccess == 1 || user.CetAccess == 1)) 

但由於根據德摩根定律,我們可以改寫它柯本:

if (user.ReAccess != 1 && user.CetAccess != 1) 
+0

我通常扮演前者的角色,因爲它更容易閱讀。其中我們宣佈我們明確拒絕的情況。 – Gusdor

+0

我傾向於使用前者。我同意我發現它更具可讀性。這表示+1爲更完整的答案。 –

+0

@Gusdor這是個人喜好,儘管一些特定的情況只是更有意義的一個或另一個。 – Servy

0

使用不等於操作

if (user.ReAccess != 1 && user.CetAccess != 1) 
    { 
     //Do Something 
    } 
2

用括號括起來:

if (!(user.ReAccess == 1 || user.CetAccess == 1)) 
{ 
    //Do Something 
} 
0

的Try ...

if (!(user.ReAccess == 1 || user.CetAccess == 1)) 
    { 
//Do Something 
    } 
0

使用DeMorgans。如果A = 1 || B = 1A != 1 && B != 1相同,那麼;

if (user.ReAccess != 1 && user.CetAccess 1= 1) 
    { 
     // Do Something 
    } 
相關問題