When designing collection classes, should GetEnumerator be virtual if it implements the generic IEnumerable interface? I can't think of a single good reason why it should be. On the other hand, I can't think of a single bad reason either.
When designing collection classes, should GetEnumerator be virtual if it implements the generic IEnumerable interface? I can't think of a single good reason why it should be. On the other hand, I can't think of a single bad reason either.
If I did your homework for you, then you might pass your class without learning how to write a program like this. Then you might graduate and get your degree without learning how to write a program like this. You might become a professional programmer without knowing how to write a program like this. Someday you might work on a project with me without knowing how to write a program like this. Then I would have to do you serious bodily harm. - Jack Klein
I love to make methods virtual. The reason is one day, you might decide to create another class inheriting from the one you just made. And you might just decide you need to override GetEnumerator. If you do, you'll find yourself cursing at the complete moron who decided not to make it virtual
That said, I do believe there is a very slight performance hit when it comes to calling virtual methods.
See here:
http://www.paulstovell.net/Posts/Pos...5-701d3d25eff6