C#类的数组和索引器,一个类中的多个数组必须是公共的

本文关键字:数组 一个 索引 | 更新日期: 2023-09-27 17:57:41

我有一个类,它将容纳3个并行数组。(对于类赋值,我们基本上是在编写一个基本的xml解析器……开始编程类)

*注意,我是在非常基本的OOP中做这件事的。我有一个XMLObject类,它有数组,在一个数组中保存xml元素,在另一个数组中将数据值保存,在第三个数组中将结束元素保存。我还有一个XMLParse对象,它进行实际的解析,并在找到字符串时将其存储到各个数组中。我被禁止在这个任务中使用.net的xml内容,必须是一个字节一个字节地读入.

现在我在MSDN上读到了关于索引器的文章,据我所知,我要么只能有一个使用索引器的数组(因为这是属性接收参数的唯一方式),要么我必须公开我的数组,以便解析类可以添加到它们中,main或其他类可以从中读取。

我有这个权利吗?还是我遗漏了什么/不知道如何从另一个类中获取和设置一个类的数组?

同样适用于列表吗?

C#类的数组和索引器,一个类中的多个数组必须是公共的

如果我理解你的问题,你想在你的类上有很多索引器,这些索引器将从类所持有的数组中返回各种元素。

可以有许多索引器,但前提是每个索引器使用的类型不同。因此,可以有一个int的索引器和一个string的索引器,但不能有两个int的索引器。

从声音上看,您将无法使用索引器来访问类所持有的所有值,因为它们可能都希望使用int

公开公开数组是一种选择,但您也可以提供不同的方法来读取每件事,因此您可以使用GetXmlElement(int index)GetDataValue(int index)GetEndingElement(int index)来访问数组的内容。

另一种选择是在内部将数据存储在数组中,但接受并返回一个将所有数据捆绑在一起的类。这样,就可以有一个返回所有数据的索引器,因为所有数据都是一个包含元素、数据值和结束元素的对象

您必须提供类似的方法来添加数据,并可能删除和更改数据。是否要这样做,opr只是突出底层数组/列表取决于您是否希望能够控制数组的添加/访问/删除/更改。

我建议您使用List<T>而不是数组来存储数据。使用它要容易得多。

请参见此处。