簡體   English   中英

我正在嘗試在C#中執行以下代碼,但是以某種方式給我一個錯誤

[英]I am trying to execute the following code in C# but its somehow giving me an error

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。 先謝謝您的幫助。

我正在Windows 7的Visual Studio 2010中運行它。我已下達了構建順序,以便在命名空間B之前先編譯命名空間A。

您遇到的問題是由於您需要使用非靜態變量x訪問靜態類A 調整您的課程以:

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;
        }
    }
}

一切都會好起來的

您使用的是兩個不同的名稱空間。因此,當您添加對名稱空間A的引用時,它就可以解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM