2016-10-10 67 views
0

我討厭檢查布爾值來查看那裏的狀態,然後根據它來切換它們,所以我寫了一些東西爲我做。<namespace>是一個'類型',它在給定的上下文中無效

它不斷給我下面的錯誤: 是一個「類型」,這是不是在給定的情況下

這裏有效的命名空間和類:

namespace Bool 
{ 
    public class ToggleState 
    { 

     static bool Toggle(bool Bool) 
     { 
      if (Bool == true) 
      { 
       return false; 
      } 
      else 
      { 
       return true; 
      } 
     } 
    } 
} 

這裏是代碼這是給錯誤

Test = Bool.ToggleState(Test); 
+2

不要共享命名空間,類,方法,變量等 –

+1

之間的名字不要讓你的代碼...看來你應該使用'測試= Bool.ToggleState .Toggle(Test);' –

+1

您是否確實意指 「return!Bool;」 ? –

回答

1

這是因爲你的命名空間被稱爲「布爾」,這使它成爲一種類型。

我爲你重構了一下。

namespace Bool //Your namespace, it's a type 
{ 
    public class ToggleState // Your class, also a type 
    { 
     static bool Toogle(bool boolValue) 
     { 
      return !boolValue; //revert bool value and return it back 
     } 
    } 
} 

名稱Bool(您當前的名稱空間)可以很容易被結構布爾錯誤(變量類型)誤認爲。考慮給它更有意義的名字。

0

儘管毫無疑問該命名空間的命名是不完全的最好的,我看不出有任何理由要做到這不,如果你解決一兩件事情的工作:

1)你應該有Test = Bool.ToggleState.Toggle(Test);

2)Toggle方法應該是公共

相關問題