我有一个类可以容纳3个并行数组。 (对于类赋值,我们基本上编写了一个基本的xml解析器......开始编程类)
*注意,我在非常基本的OOP中这样做。我有一个XMLObject类,它有数组,并将xml元素保存在一个数组中,数据值保存在另一个数组中,结束元素保存在第三个数组中。我还有一个XMLParse对象来执行实际的解析,并在找到它们时将字符串存储到各种数组中。我一直禁止使用.net的xml内容进行此分配,必须逐字节读入。
现在我在MSDN上阅读关于索引器的内容,据我了解,我可以使用索引器只有一个数组(因为这是属性接收参数的唯一方法),或者我必须公开我的数组解析类可以添加它们,主类或其他类可以从中读取它们。
我是否有这个权利,或者我错过了什么/不理解如何从另一个类中获取和设置一个类的数组?
同样适用于列表吗?
答案 0 :(得分:2)
如果我理解你的问题,你想在你的类上有很多索引器,它将返回类所持有的数组中的各种元素。
您可以拥有多个索引器,但前提是每个索引器使用的类型不同。因此,int
可以有一个索引器,而string
可以有一个索引器,而int
则不能有两个索引器。
根据事物的声音,您将无法使用索引器访问您的类所拥有的所有值,因为他们可能都想使用int
。
公开公开数组是一种选择,但您也可以提供不同的方法来阅读每个内容,因此您可以GetXmlElement(int index)
,GetDataValue(int index)
和GetEndingElement(int index)
来提供对内容的访问权限数组。
另一种选择是在内部将数据存储在数组中,但接受并返回一个将所有数据捆绑在一起的类。这样你就可以有一个返回所有数据的索引器,因为所有数据都是一个包含元素,数据值和结束元素的单个对象。
您必须提供类似的方法来添加数据,并可能同时删除和更改。无论你是否想要这样做,opr只是exopse底层数组/列表取决于你是否希望能够控制添加/访问/删除/更改数组。
答案 1 :(得分:1)
我建议您使用List<T>
而不是数组来存储数据。使用起来要容易得多。
请参阅here。