我在命名空间的文件夹中有一个类:
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
?
答案 0 :(得分:1)
嵌套类就像普通类一样,除了它的定义位于 包含的类中。结果是包含类几乎就像嵌套类的命名空间一样。您不必实例化包含类以使用嵌套类。例如:
namespace MyNamespace
{
public class MyParentClass
{
public class MyNestedClass
{
}
}
}
现在你可以在其他地方实例化它:
MyNamespace.MyParentClass.MyNestedClass x =
new MyNamespace.MyParentClass.MyNestedClass();
与命名空间一样,这个目的是为了组织。作为设计者,您是否使用嵌套类而不是平面类结构取决于您,但是当您拥有一个类的意义,定义或用法与另一个类不可分割地绑定并且没有它时,它会很方便该类的外的任何相关性或含义。
例如,假设您有一个Widget
类,其ID
属性不仅仅是一个简单的int
或Guid
...您可能拥有{ {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();