所以我正在阅读索引器并且基本上理解如果你有一个包含数组的类,你可以使用索引器来获取和设置该数组中的值。 但是,如果你的课程中有多个数组呢?
例如:
class myClass
{
string[] myArray1 = {"joe","zac","lisa"}
string[] myArray2 = {"street1","street2","street3"}
}
我希望myArray1和myArray2都有一个索引器...... 我怎么能这样做?
答案 0 :(得分:8)
long
索引和一个取int
索引,但这不太可能是一个好主意,并可能导致严重对你维护代码之后来的人表示不满。
更可能有用的是公开普通属性,它包装数组(并且可能只提供只读访问)。在某些情况下,您可以使用ReadOnlyCollection<T>
:
public class Foo
{
private readonly string[] names;
private readonly string[] addresses;
// Assuming you're using C# 6...
private readonly ReadOnlyCollection<string> Names { get; }
private readonly ReadOnlyCollection<string> Addresses { get; }
public Foo()
{
names = ...;
addresses = ...;
Names = new ReadOnlyCollection<string>(names);
Addresses = new ReadOnlyCollection<string>(addresses);
}
}