祝大家好。 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(代码隐藏)文件具有命名空间。
答案 0 :(得分:3)
请尝试使用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();
}
}
}
答案 1 :(得分:1)
您是在类Films内部还是在类文件films.cs中实现struct(在全局范围内)。尝试像这样导航你的结构
var categorydetails = new global::CategoryDetails();