如何通过实现 Array Wrapper 来最小化开销?
1 为MyProviderInfos选择哪种接口/类型?
2使用私有静态枚举器是否合理?不,从
答案
3 MyProviderInfos是否应该是一个属性以及如何保护其成员不被修改?成员的内部/私人SETTERS(来自相同的答案)
我尝试阅读有关 ICollection、Readonly-Collection、List、IList、Array 的 SO 文章,但仍然对最适合该场景的内容感到困惑:
- Array MyProviderInfos 由编译时形成,不会(不得)在运行时更改。
- 该类(必须)是可枚举的(使用数组 MyProviderInfos 的元素)并且不需要自定义列表函数(.Add .Remove)。
- 该类具有使用 Array 的静态函数。
- 类必须是非静态的才能支持索引。
代码:
public class MyIdentifiers : IEnumerable<MyProviderInfo>
{
//public static IList<MyProviderInfo> getMyProviderInfos()
//{ return MyProviderInfos; }
public static int MyProviderCount()
{
return MyProviderInfos.Count;
}
public static readonly IList<MyProviderInfo> MyProviderInfos = new[]
{
new MyProviderInfo
{
MyProvider = MyProvider.FirstProvider,
Url = "https://www.google.com",
}
};
private static IEnumerator<MyProviderInfo> _enumerator =
((IEnumerable<MyProviderInfo>)MyProviderInfos).GetEnumerator();
public IEnumerator<MyProviderInfo> GetEnumerator()
{
return _enumerator;
//return ((IEnumerable<MyProviderInfo>)MyProviderInfos).GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}