gpt4 book ai didi

c# - 为什么派生 List 类只是为了重申索引器?

转载 作者:太空狗 更新时间:2023-10-30 00:26:45 26 4
gpt4 key购买 nike

我一直看到 List 派生类看起来像这样

class MyClassList : List<MyClass>
{
public MyClass this[int index]
{
get { return (MyClass)base[index]; }
}
}

这种继承有什么意义?看起来它只是重申了成员的选角。我可以理解其他类型的索引器,但这只是默认列表索引器的重述,并引发 Visual Studio 警告 RE:隐藏基本索引器。这是正确的做法还是错误的做法,为什么?

最佳答案

也许这是一个非常糟糕的尝试来防止通过索引器覆盖值?

MyClassList x = new MyClassList();
x.Add(new MyClass());
x[0] = new MyClass(); // Error!

当然,这并不能阻止:

List<MyClass> x = new MyClassList();
x.Add(new MyClass());
x[0] = new MyClass(); // No problem here...

基本上,这是个坏主意。不幸的是,糟糕的代码比比皆是——不要仅仅从存在中推断有用 :(

关于c# - 为什么派生 List<T> 类只是为了重申索引器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com