C# 类文件和集合
我有一个类文件,它的设置类似于下面的结构。基本上,objALLData是我的主要数据对象(它从用户那里收集信息并将其插入数据库)。 但是,在objAllData中,我需要有一个集合选项,该集合可以是objSubSet1和/或objSubSet2。但是,这两个子集都不需要公开。我需要它们做的只是填充,然后在objAllData中将它们添加到集合中(在objAllData中指定) 当我试图使子集类私有时,我得到了一个不一致的可访问性错误。根据我的研究,我需要把它们公之于众。但是,我真的不想让任何人知道这些对象,除了objAllData。这有意义吗 你知道我怎样才能达到我想要的吗?:)C# 类文件和集合,c#,oop,list,C#,Oop,List,我有一个类文件,它的设置类似于下面的结构。基本上,objALLData是我的主要数据对象(它从用户那里收集信息并将其插入数据库)。 但是,在objAllData中,我需要有一个集合选项,该集合可以是objSubSet1和/或objSubSet2。但是,这两个子集都不需要公开。我需要它们做的只是填充,然后在objAllData中将它们添加到集合中(在objAllData中指定) 当我试图使子集类私有时,我得到了一个不一致的可访问性错误。根据我的研究,我需要把它们公之于众。但是,我真的不想让任何人知
公共类objAllData
{
列表ss1=新列表();
列表ss2=新列表();
公共列表addSS1toCollection()
{
objSubSet1 myOBJSS1=新的objSubSet1();
myobjs1.property=“”;
ss1.添加(MYOBJS1);
返回ss1;
}
}
公共类objSubSet1
{
}
公共类objSubSet2
{
}
由于add方法返回列表,用户需要对返回的类型有一定的可见性。不完全公开真实对象类型的最简单方法是创建一个接口
public interface Thing {
//public methods
}
public class ObjAllData {
public List<Thing> addSS1toCollection() {
List<ObjSubSet1> ss1 = new List<objSubSet1>();
ss1.add(new ObjSubSet1());
return ss1;
}
private class ObjSubSet1 : Thing {
//implements public methods
}
}
函数定义必须指定返回的变量类型,而不是变量名
public ss1 addSS1toCollection() //incorrect
public List<objSubSet1> addSS1toCollection() //correct
public ss1 addSS1toCollection()//不正确
公共列表addSS1toCollection()//正确
您的返回语句后还缺少一个分号。unholysampler上面的代码是伪代码(勉强)-更像是在问题表单中快速记下我想要的内容:)。谢谢你的回答。我会试试那个方向。为什么让addSS1toCollection()返回ss1呢?重新思考你在objAllData上提供的方法。@ozan-那么你会怎么做?
public class objAllData() //incorrect
public class ObjAllData //correct
public ss1 addSS1toCollection() //incorrect
public List<objSubSet1> addSS1toCollection() //correct