& lt; namespace>是'类型',在给定上下文中无效

本文关键字:上下文 无效 类型 lt namespace | 更新日期: 2023-09-27 18:12:38

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

它一直给我以下错误:是一个'type',在给定的上下文中是无效的

命名空间和类:

namespace Bool
{
    public class ToggleState
    {
        static bool Toggle(bool Bool)
        {
            if (Bool == true)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }
}

这里是给出错误

的代码
Test = Bool.ToggleState(Test);

& lt; namespace>是'类型',在给定上下文中无效

这是因为您的名称空间被称为"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
        }
    }
}

Name Bool(您当前的命名空间)很容易与struct Bool(变量类型)混淆。考虑给它起个更有意义的名字。

虽然毫无疑问,名称空间命名并不是最好的,但如果您修复了一些事情,我不认为有任何理由不工作:

1)你应该有Test = Bool.ToggleState.Toggle(Test);

2) Toggle方法应为public