c# - 在同类之外不被认可的公共(public)结构

标签 c# asp.net visual-studio-2008

大家好。 1) 我在类文件 (Films.cs) 中定义了一个公共(public)结构,如下所示:

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(代码隐藏)文件有一个命名空间。

  • A.到目前为止我尝试的是将 Films 类放在同一个 命名空间。没有运气。
  • B.如您所见,该结构是公开的。感谢您的帮助。 非常感谢。

最佳答案

试试 Films.CategoryDe​​tails。嵌套类/结构在访问时需要为其包装类添加前缀(如命名空间)。 (除非您从该包装类中访问它)

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

    }
}

关于c# - 在同类之外不被认可的公共(public)结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862763/

相关文章:

asp.net - 表单例份验证 - 如何验证非事件用户的用户名和密码?

c# - 在c# winform中打印和制作报告

c# - 代码契约(Contract) : IEnumerator<T>. GetEnumerator() 奇怪的继承契约(Contract)?

c# - Memento 模式是如何在 C#4 中实现的?

c# - 如何在 asp.net C# 中使用 Web 部件?

java webpart 像asp.net 一样吗?

asp.net - 数据库事务超时问题

c++ - 如何将 LPCWSTR 转换为 const char *?

c# - Visual Studio F6 停止工作。它不再构建项目

asp.net - 如何更改 .ASPX 自动格式化设置 (Visual Studio)