C# <;名称空间>;是一个';类型';,在给定上下文中无效

C# <;名称空间>;是一个';类型';,在给定上下文中无效,c#,namespaces,syntax-error,C#,Namespaces,Syntax Error,我讨厌检查布尔值以查看状态,然后根据状态切换它们,所以我写了一些东西来帮我做 它不断给我以下错误: 是“类型”,在给定上下文中无效 以下是名称空间和类: namespace Bool { public class ToggleState { static bool Toggle(bool Bool) { if (Bool == true) { return false

我讨厌检查布尔值以查看状态,然后根据状态切换它们,所以我写了一些东西来帮我做

它不断给我以下错误: 是“类型”,在给定上下文中无效

以下是名称空间和类:

namespace Bool
{
    public class ToggleState
    {

        static bool Toggle(bool Bool)
        {
            if (Bool == true)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }
}
这是给出错误的代码

Test = Bool.ToggleState(Test);

这是因为您的名称空间被称为“Bool”,这使它成为一种类型

我为你重构了一下

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(当前名称空间)很容易与结构Bool(变量类型)混淆。考虑给它一个更有意义的名字。 这是因为您的名称空间被称为“Bool”,这使它成为一种类型

我为你重构了一下

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(当前名称空间)很容易与结构Bool(变量类型)混淆。考虑给它一个更有意义的名字。 尽管毫无疑问名称空间命名并不完全是最好的,但如果您解决了以下几个问题,我看不出有任何理由不起作用:

1) 您应该有
Test=Bool.ToggleState.Toggle(测试)


2)
Toggle
方法应该是公共的

尽管毫无疑问名称空间命名并不是最好的,但如果您解决了以下几个问题,我看不出有任何理由不起作用:

1) 您应该有
Test=Bool.ToggleState.Toggle(测试)


2)
切换
方法应该是公共的

不要在名称空间、类、方法、变量等之间共享名称。不要获取您的代码。。。似乎您应该使用
Test=Bool.ToggleState.Toggle(测试)Test=Bool.ToggleState.Toggle(测试)