C# · 12月 29, 2021

c# – 为什么是Stack.Peek()一个方法?

如标题.为什么 Stack类需要一个方法来返回顶层对象的引用?我一直被告知,这种方法表明有一些计算涉及到,应该使用属性返回简单的对象. Peek()方法没有参数,在代码级别(我认为)是一个简单的操作.

问题是:有什么特别的原因吗?影响性能的任何隐藏行为?

编辑:我不知道类的实现,但是f.e.如果该方法在下面使用枚举器,则多次迭代到最后一个元素将是不明智的.另一方面,如果它是一个单一的IList,那么它不应该对性能有更大的影响.

解决方法 Peek是一个动词,所以在我的书中Peek()应该是一种方法.然而,使用不同的名称,它也可以是一个财产.

请记住,任何属性都具有关联的get和/或set方法,所以您最终可以使用方法.