公共结构在其类别之外不被认可

本文关键字:结构 | 更新日期: 2023-09-27 18:36:01

>大家嘟。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.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();
        }
    }
}

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

var categorydetails = new global::CategoryDetails();