我如何创建一个嵌套模型,同时保持内部类私有?



我想把Filter类封装在我的FilterSelection模型中,这样Filter就不能自己实例化了。然而,试图设置一个属性来访问列表,我得到这个错误:

可访问性不一致:属性类型不如属性

可访问
public class FilterSelection
{
public List<Filter> List { get; set; }
public FilterSelection()
{
List = new List<Filter>();
}

private class Filter
{
public string CustomFilterName { get; set; }
public string workBook { get; set; }
}
}

属性和类型的可访问性必须一致(或者至少,属性对类型的可访问性必须小于或等于)。

选项1 -使属性和类型对任何引用你的类的代码可用:

public class FilterSelection
{
public List<Filter> List { get; set; }
public FilterSelection()
{
List = new List<Filter>();
}

public class Filter
{
public string CustomFilterName { get; set; }
public string workBook { get; set; }
}
}

选项2 -不允许访问属性或类,除非在类的构造函数中。

public class FilterSelection
{
private List<Filter> List { get; set; }
public FilterSelection()
{
List = new List<Filter>();
}

private class Filter
{
public string CustomFilterName { get; set; }
public string workBook { get; set; }
}
}

选项3 -使类和属性可用于此程序集中的任何类,但不能用于程序集中的外部

public class FilterSelection
{
internal List<Filter> List { get; set; }
public FilterSelection()
{
List = new List<Filter>();
}

internal class Filter
{
public string CustomFilterName { get; set; }
public string workBook { get; set; }
}
}

选项4 -使你的属性和类对你的类和任何继承你的类可用

public class FilterSelection
{
protected List<Filter> List { get; set; }
public FilterSelection()
{
List = new List<Filter>();
}

protected class Filter
{
public string CustomFilterName { get; set; }
public string workBook { get; set; }
}
}

最新更新