大家好。 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.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();
}
}
}
关于c# - 在同类之外不被认可的公共(public)结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862763/