Sometimes I look at a piece of code and find it hard not to sigh, especially when the developer has done something the hard way.

Take this piece of code, for example:

var key = EntityKeyFactory.CreateKey<ITsClassKey>(
    new object[]

For reference, here’s the declaration of the CreateKey function:

public static T CreateKey<T>(params object[] aKeyValues)

Do you see the problem?

The developer’s working too hard - writing by hand code that the compiler should generate instead.

The key is the params keyword - instead of taking a couple of minutes to find out what the keyword meant, this developer ignored it and wrote code the long way over and over and over again.

Just for the record, here’s what the code should look like:

var key 
    = EntityKeyFactory.CreateKey<ITsClassKey>(
        aItemRequest.ItemName, aItemRequest.SystemName);

My rule of thumb: Don’t assume that because I don’t understand something, it’s irrelevant to me.


blog comments powered by Disqus
Next Post
Improving on POCO Associations  21 Jan 2010
Prior Post
CI, Builds and NAnt  15 Jan 2010
Related Posts
The Liskov substitution principle goes both ways  21 Mar 2020
Avoid hardcoded wait times  26 May 2018
Guaranteed Progression  19 May 2018
Prefer declarative method names  03 Feb 2018
Using Premeditation  27 Jan 2018
With Relocation  20 Jan 2018
Using Consolidation  13 Jan 2018
Using Semantic Types  06 Jan 2018
Using Extension Methods  30 Dec 2017
Error Methods  25 Nov 2017
More smart-code posts »
January 2010