访问/使用来自其他类C#的嵌套类

时间:2016-05-26 15:34:34

标签: c# class nested access

我在命名空间的文件夹中有一个类:

using System;  

namespace mynamespace.myFolder1
{
   public class F1  
   {  
      // class properties...  
      // class methods...  

      public class F1_Nest  
      {  
          // class properties...  
          // class methods...  
      }  
}

现在我必须从以下位置访问班级F1_Nest

using System;  
using mynamespace.myFolder1;   

namespace mynamespace.myFolder2  
{  
   public class F2  
   {  
      // class properties...  
      // class methods...  

      // I have to access nested class F1_Nest here...  
   }  
}

如何在课程F1_Nest中使用/访问课程F2

4 个答案:

答案 0 :(得分:1)

嵌套类就像普通类一样,除了它的定义位于 包含的类中。结果是包含类几乎就像嵌套类的命名空间一样。您不必实例化包含类以使用嵌套类。例如:

namespace MyNamespace
{
    public class MyParentClass
    {
        public class MyNestedClass
        {

        }
    }
}

现在你可以在其他地方实例化它:

MyNamespace.MyParentClass.MyNestedClass x = 
    new MyNamespace.MyParentClass.MyNestedClass();

与命名空间一样,这个目的是为了组织。作为设计者,您是否使用嵌套类而不是平面类结构取决于您,但是当您拥有一个类的意义,定义或用法与另一个类不可分割地绑定并且没有它时,它会很方便该类的的任何相关性或含义。

例如,假设您有一个Widget类,其ID属性不仅仅是一个简单的intGuid ...您可能拥有{ {1}}枚举,例如可以作为嵌套类驻留在WidgetID

答案 1 :(得分:0)

要访问嵌套类,您需要执行以下操作:

using System;  
using mynamespace.myFolder1;   

namespace mynamespace.myFolder2  
{  
    public class F2  
    {  
        // class properties...  
        // class methods...  

        void SomeMethod()
        {
            // no need to instantiate an object of F1 class
            var f1Nest = new F1.F1_Nest();
        }  
    }  
}

答案 2 :(得分:0)

可以在类F1_Nest中访问嵌套类F2,如下所示:

using System;  
using mynamespace.myFolder1;   

namespace mynamespace.myFolder2  
{  
   public class F2  
   {  
      // class properties...  
      // class methods...  

      // I have to access nested class F1_Nest here...  
      void F2_Method()  
      {
         F1.F1_Nest();  
      }
   }  
}

答案 3 :(得分:0)

按如下方式声明F1_Nest的对象

F1.F1_Nest  objYourObjectVariableName=new F1.F1_Nest();