我想把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; }
}
}