Skip to Content
Professional Visual Studio® 2008
book

Professional Visual Studio® 2008

by Nick Randolph, David Gardner
July 2008
Intermediate to advanced
1026 pages
27h 59m
English
Wrox
Content preview from Professional Visual Studio® 2008

12.4. Extension Methods

A design question that often arises is whether to extend a given interface to include a specific method. Extending any widely used interface, for example IEnumerable, will not only break contracts where the interface has been implemented but will also force any future class that implements the interface to include the new method. Although there are scenarios where this is warranted, there are also numerous cases in which you simply want to create a method to manipulate an object that matches a particular interface.

One possible example involves a Count method that simply iterates through an IEnumerable and returns the number of elements. Adding this method to the IEnumerable interface would actually increase the amount of redundant code, as each class implementing the interface would have to implement the Count method. A solution to this problem is to create a helper class that has a static Count method that accepts an IEnumerable parameter.

Public Shared Function Count(ByVal items As IEnumerable) As Integer
    Dim i As Integer = 0
    For Each x In items
        i += 1
    Next
    Return i
End Function

Dim cnt = Count(people)

While this solution is adequate in most scenarios, it can lead to some terse-looking code when you use multiple static methods to manipulate a given object. Extension methods promote readability by enabling you to declare static methods that appear to modify the public type information for a class or interface. For example, in the case of the IEnumerable ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Professional Visual Studio® 2010

Professional Visual Studio® 2010

Nick Randolph, David Gardner, Michael Minutillo, Chris Anderson
Visual Basic 2015 Unleashed

Visual Basic 2015 Unleashed

Alessandro Del Sole

Publisher Resources

ISBN: 9780470229880Purchase book