Auto-Implemented Properties in Visual Basic 2010

Sign in to queue

Description

In this interview, Doug Rothaus, a programming writer on the Visual Studio User Education team, describes the new auto-implemented properties in Visual Basic 2010. He also demonstrates some of the code examples in his Help topic, Auto-Implemented Properties.

Kathleen McGrath
Visual Studio User Education

Embed

Download

Download this episode

The Discussion

  • User profile image
    Ed Fitzgerald

    The demo keeps asking to install Silverlight, even I have it installed. I clicked to install it again, but I still keep getting the prompt to install it. Running Vista Ultimate - latest updates.

  • User profile image
    kmcgrath

    Are you able to view other Silverlight videos on Channel 9?  Alternatively, you can view it in Windows Media Player by clicking Formats and then clicking WMV (high)

  • User profile image
    andrgin2

    I think this is a great feature in Visual Basic because you will really save lots of code and it will be very easy to replace an auto implemented property with a normal property afterwards (adding additional checks and cleanup work for setters, or implementing extra logic for getters if you change the field).

     

    There is only one problem:

    Very often it is better to access fields directly because you want to bypass any validation checks that my be implemented in the property someday. An example for this is the constructor where you do not have valid data yet or some other situations.

    It is also good for readabilty of Code if you have your global Fields of a Class starting with a "_", while local variables in a function do not have it.

    I have seen you can access the private fields directly very nicely, but there is no intellisense support for this. If you type Me._Last in the construtor there is no entry for Me._Lastname.

  • User profile image
    Mulb

    Isnt't the backing variable declared incorectly and violating the .Net framework guildlines that have been in use for many many years? I thought all variables should be pascal case, aka, the first character should always be lower case.

    I.e for a property named CustermerID the backing variable should be _customerID NOT _CustomerID. The ONLY time words .net should start uppercase are Properties, Events, Classes, Delegates etc.

     

     

  • User profile image
    shmine

    The feature just prepends an underscore onto whatever name you give the property. It doesn't modify any of the casing for the property name itself. Hence, you'll get backing variable casing that does not match the framework naming guidelines.  --Doug

  • User profile image
    Ram

    Does it have affect on performance ??
    Auto-Implemented property vs Normal Property

  • User profile image
    Garius

    What is the difference between a plain field and an auto-implemented property? Why would you choose one over the other?

Add Your 2 Cents