我试图在C#中执行以下代码,但它以某种方式给我一个错误

时间:2013-11-01 16:30:41

标签: c# namespaces

namespace A
{
       public enum ABC
       {
       }
       public class ClassA
       {
            static ClassA()
            {}
            public static bool f_name
            {
            }
             //All the rest of the functions are also static
       }
}

namespace B
{
       using A;
       public partial class ClassB
       {
              private bool x;
              public ClassB()
              {}
              static void Main()
              {
                      x = ClassA.f_name;
              }
       }
}

两个命名空间都在不同的文件中。运行此代码时,ClassA.f_name不起作用。它以某种方式被忽略了。当我把手表放在上面时,它说“当前上下文中不存在名称'ClassA'”。谁能告诉我为什么?我还需要做些什么来解决这个问题?

当我使用“A.ClassA.f_name”时,它运行正常。但我不应该写“A”。因为我已经包含了命名空间A.在此先感谢您的帮助。

我在Visual Studio 2010,Windows 7中运行它。我已经将构建顺序放在名称空间B之前编译名称空间A.

2 个答案:

答案 0 :(得分:0)

您遇到的问题是由于您需要使用非静态变量A访问静态类x。将课程改为:

namespace A
{
    public enum ABC
    {
    }
    public class ClassA
    {
        static ClassA()
        { }
        public static bool f_name
        {
           get { return true; }
        }

        //All the rest of the functions are also static
    }
}

namespace B
{
    using A;
    public partial class ClassB
    {
        /// changed this to static to match access on class A
        private static bool x;
        public ClassB()
        { }
        static void Main()
        {
            x = ClassA.f_name;
        }
    }
}

一切都会好的

答案 1 :(得分:0)

您正在使用两个不同的命名空间。当您添加对命名空间A的引用时,它已得到解决。