tech·nic·al·ly agile

My first Extension method…

Explore how to enhance your .NET skills by creating extension methods in VB.NET. Learn to add functionality to Xbox Live info with practical examples!

Published on
2 minute read
Image
https://nkdagility.com/resources/QJ6lF5ONMCD

I decided as part of my .NET 3.5 learning curve to rebuild Duncan Mackenzie  ’s Xbox to Twitter application  just for fun…

When you call his web service you get a XboxInfo class back that contains all of your Xbox Live Information. I wanted to be able to add a method to this called “ToInstanceString” that I would use to both display your Status, and to detect when it had changed.

In VB.NET you add Extension methods to a Module. One thing worth noting is that you can control the scope of the extension method with the Namespace. If you add a namespace of “MyApp.Mynamespace” your method will only be available within that namespace and not at the “MyApp” level.

Public Module XboxExtensions

    <System.Runtime.CompilerServices.Extension()> _
    Friend Function ToPresenceString(ByVal Value As DMXIProxy.XboxInfo) As String
        If Value.PresenceInfo.Info = "" Then
            Return ""
        ElseIf Value.PresenceInfo.Info2 = "" Then
            Return Value.PresenceInfo.Info
        Else
            Return String.Format("{0} ({1})", Value.PresenceInfo.Info, Value.PresenceInfo.Info2)
        End If
    End Function

End Module

You need to annotate the method with  the “System.Runtime.CompilerServices.Extension()” attribute, and make sure that the first parameter of the method is the type that you want to extend…

You can add extension methods randomly within your code, but it makes sense to put them all together in categorised module for future use. Although this one is specific to this application, you can probably see many circumstances where you could create generic and useful methods to add to things like collections and the like…

Have fun…

Technorati Tags: .NET 

Software Development
Comments

Related blog posts

No related videos found.

Connect with Martin Hinshelwood

If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.

Our Happy Clients​

We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.​

Workday Logo
MacDonald Humfrey (Automation) Ltd. Logo
Xceptor - Process and Data Automation Logo
SuperControl Logo
Microsoft Logo
Brandes Investment Partners L.P. Logo
DFDS Logo
New Signature Logo
YearUp.org Logo
Higher Education Statistics Agency Logo
ProgramUtvikling Logo
ALS Life Sciences Logo
Illumina Logo
Teleplan Logo
Sage Logo

NIT A/S

Boeing Logo
Emerson Process Management Logo
New Hampshire Supreme Court Logo
Royal Air Force Logo
Washington Department of Transport Logo
Ghana Police Service Logo
Nottingham County Council Logo
Department of Work and Pensions (UK) Logo
Workday Logo
Brandes Investment Partners L.P. Logo
Capita Secure Information Solutions Ltd Logo
Freadom Logo
Higher Education Statistics Agency Logo
DFDS Logo