Click here to Skip to main content
15,893,337 members

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralRe: The Illusion of a Choice Pin
supercat99-Apr-10 7:56
supercat99-Apr-10 7:56 
GeneralRe: The Illusion of a Choice Pin
David Skelly7-Apr-10 6:21
David Skelly7-Apr-10 6:21 
GeneralRe: The Illusion of a Choice Pin
David Skelly7-Apr-10 6:28
David Skelly7-Apr-10 6:28 
GeneralRe: The Illusion of a Choice Pin
supercat97-Apr-10 7:21
supercat97-Apr-10 7:21 
GeneralSubclassing Pin
Ian Shlasko31-Mar-10 8:56
Ian Shlasko31-Mar-10 8:56 
GeneralRe: Subclassing Pin
Andrew Rissing31-Mar-10 17:42
Andrew Rissing31-Mar-10 17:42 
GeneralRe: Subclassing Pin
Ian Shlasko31-Mar-10 17:50
Ian Shlasko31-Mar-10 17:50 
GeneralRe: Subclassing Pin
Andrew Rissing1-Apr-10 5:23
Andrew Rissing1-Apr-10 5:23 
Just doing my own comparisons using:

private const int COUNT = 100000000;
 
public class Base { }
public class Derived : Base { }
 
static void Main(string[] args)
{
    object o = new Derived();
    Derived result;
    bool b;
 
    Stopwatch sw;
 
    sw = Stopwatch.StartNew();
 
    for (int i = 0; i < COUNT; )
    {
        if ((result = (o as Derived)) != null)
        {
            ++i;
        }
    }
 
    sw.Stop();
 
    Console.WriteLine("'As' Elapsed: {0}", sw.ElapsedMilliseconds);
 
    sw = Stopwatch.StartNew();
 
    for (int i = 0; i < COUNT; )
    {
        if (o is Derived)
            ++i;
    }
 
    sw.Stop();
 
    Console.WriteLine("'Is' Elapsed: {0}", sw.ElapsedMilliseconds);
    Console.ReadLine();
}

I get the following results:

'As' Elapsed: 460
'Is' Elapsed: 414

So, basically, it boils down to a 10% savings in time (ignoring the two operations are not on the same footing - 'as' requires an additional command to store the value in result). But because you spend additional time retyping using the 'as', you end up always spending more time. In essence, you might get into the correct branch to know the type, but converting the type blows away all the savings you made. The only case where you end up being faster is when you don't go through any branches and just bail out of the method entirely, so it depends on your usage.

At the very least, you could remove the additional type cast into Message that is not needed.

Ultimately, it is your code. Good read. Smile | :)
GeneralRe: Subclassing Pin
Ian Shlasko1-Apr-10 11:17
Ian Shlasko1-Apr-10 11:17 
GeneralRe: Subclassing Pin
Rob Grainger7-Apr-10 3:54
Rob Grainger7-Apr-10 3:54 
GeneralRe: Subclassing Pin
Ian Shlasko7-Apr-10 9:19
Ian Shlasko7-Apr-10 9:19 
GeneralRe: Subclassing Pin
Lutosław29-Apr-10 7:29
Lutosław29-Apr-10 7:29 
QuestionRe: Subclassing Pin
Chris Meech1-Apr-10 3:05
Chris Meech1-Apr-10 3:05 
AnswerRe: Subclassing Pin
Ian Shlasko1-Apr-10 10:56
Ian Shlasko1-Apr-10 10:56 
GeneralEncoding IP addresses Pin
Bernhard Hiller26-Mar-10 4:31
Bernhard Hiller26-Mar-10 4:31 
GeneralRe: Encoding IP addresses Pin
adgonz26-Mar-10 5:36
adgonz26-Mar-10 5:36 
GeneralRe: Encoding IP addresses Pin
reflex@codeproject30-Mar-10 8:24
reflex@codeproject30-Mar-10 8:24 
GeneralRe: Encoding IP addresses Pin
adgonz30-Mar-10 8:54
adgonz30-Mar-10 8:54 
GeneralRe: Encoding IP addresses Pin
supercat97-Apr-10 7:29
supercat97-Apr-10 7:29 
GeneralThat's an useless class Pin
doud26-Mar-10 3:19
professionaldoud26-Mar-10 3:19 
GeneralRe: That's an useless class Pin
Covean26-Mar-10 4:00
Covean26-Mar-10 4:00 
GeneralRe: That's an useless class Pin
V.26-Mar-10 4:59
professionalV.26-Mar-10 4:59 
GeneralRe: That's an useless class Pin
Som Shekhar27-Mar-10 4:19
Som Shekhar27-Mar-10 4:19 
GeneralRe: That's an useless class Pin
nxaspisol27-Mar-10 22:31
nxaspisol27-Mar-10 22:31 
GeneralRe: That's an useless class Pin
Don Kackman29-Mar-10 14:37
Don Kackman29-Mar-10 14:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.