大家好
1)我在类文件(Films.cs)中定义了一个公共结构,如下所示:
public struct CategoryDetails
{
...
}
对于所有重要的事情,该类都不放在命名空间中。
2)我有一个名为Catalog的aspx文件,其中包含一个代码隐藏文件。
在代码隐藏文件中,我有此文件(与Page_Load方法处于同一级别):
private void PopulateControls()
{
--> here I would like to have visibility to the CategoryDetails structure, which I don't
}
我指定Catalog.ascx.cs(代码隐藏)文件具有名称空间。
答:到目前为止,我试图将Films类放置在同一类中
命名空间。没运气。
B.如您所见,该结构是公共的。谢谢您的帮助。
非常感激。
最佳答案
请尝试使用Films.CategoryDetails
。嵌套的类/结构在访问时需要为其包装类添加前缀(例如名称空间)。 (除非您要从该包装类中访问它)
private void PopulateControls()
{
var categorydetails = new Films.CategoryDetails();
//do stuff
}
编辑:
只是为了澄清,从
Films
类内部,您不再需要为其添加前缀。 (如果存在不明确的命名问题,您仍然可以给它加上前缀):namespace MyProject
{
public class Films
{
public struct CategoryDetails
{
}
public void DoStuff()
{
//both are valid
var categorydetails = new CategoryDetails();
var otherdetails = new Films.CategoryDetails();
}
}
}