0

大家好。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. 如您所见,该结构是公开的。谢谢您的帮助。非常感激。
4

2 回答 2

2

试试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();
        }

    }
}
于 2012-06-02T13:54:16.663 回答
1

您是在类 Films 内还是在类文件films.cs 内实现结构(在全局范围内)。尝试像这样导航您的结构

var categorydetails = new global::CategoryDetails();
于 2012-06-02T14:03:52.333 回答