0
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 中运行它。我已经设置了构建顺序,使得命名空间 A 在命名空间 B 之前编译。

4

2 回答 2

0

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

于 2013-11-01T16:41:17.727 回答
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;
        }
    }
}

一切都会好起来的

于 2013-11-01T16:37:10.947 回答