大家好
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();
        }

    }
}

10-08 12:45