Thursday 26 April 2012
4 comments

C# default properties

Thursday 26 April 2012 01:53

I’d like to start out the Coders’ Corner section of this blog with a simple C# trick that I call “default properties”, having come from the VB world.

Suppose that I have this class called Person (code screen shots taken from Visual Studio 11 Beta):

person.cs

 

 

 

I “new” it up in a collection like this:

main.cs-1

Now, let’s say that I set up a foreach loop which does something to the collection, like this:

main.cs-2

What I would like it to do is to use p’s Name property, without having to tell it explicitly within the context of WriteLine().

As is, the above code would give me this output:

 consoleapp1-output

The trick is to use C# conversion operators, like so:

person.cs-2

When WriteLine() is used, the system knows that the method expects a string, and finds the implicit cast operator which converts a Person into a string.

And the output:

consoleapp1-output-2

4 comments :

  1. Why cant you just override ToString()?

    ReplyDelete
    Replies
    1. Hey, Uri. Thanks for your comment. In this contrived example, certainly overriding ToString() would be easier. However, the goal of the article was to showcase C# type conversion operators. The consequence is that with the conversion operator, you can apply comparison operations between string and Person types. So, in the above scenario, new Person { Name = "John Public", Age = 25 } == "John Public" would evaluate to True, whereas you would get a syntax error had you simply overridden ToString().

      Delete
  2. you could buy more properties but each of those properties will go up in price and if you've leveraged your investments with mortgages your return on investment will be even greater.deyaar properties

    ReplyDelete
  3. Whilst your probabilities of profitable the jackpot might be miniscule, may be} never far-off from profitable free spins or bonuses. "Digital slot machines are programmed to have a certain percentage of payouts. And digital slot video games use a Random Number Generator to find out} the outcome result} of every spin," Good tellsBest Life. Before you start playing in} slots for actual money, may have} the option to tryfree slot machines. Not only is this nice 봄비벳 fun, it also provides you the opportunity to get to know your sport and all of its secret quirks. Play a slot with bonus rounds, as could be a|it is a} nice way to hone your expertise. Don’t begin playing in} with concept that|the concept|the concept that} you’ll soon know the way to|tips on how to} win at slots in Vegas – always begin with free video games.

    ReplyDelete

 
Toggle Footer
Top