Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. c# Casting v As operator

c# Casting v As operator

Scheduled Pinned Locked Moved The Lounge
csharpquestion
117 Posts 47 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N NormDroid

    a. Throw back from C++ programming.

    www.software-kinetics.co.uk Wear a hard hat it's under construction

    Q Offline
    Q Offline
    Quirkafleeg
    wrote on last edited by
    #38

    Wrong - a is C-style casting, not C++

    N S 2 Replies Last reply
    0
    • Q Quirkafleeg

      Wrong - a is C-style casting, not C++

      N Offline
      N Offline
      NormDroid
      wrote on last edited by
      #39

      Splitting hairs :)

      www.software-kinetics.co.uk Wear a hard hat it's under construction

      R 1 Reply Last reply
      0
      • N Nagy Vilmos

        Norm .net wrote:

        Good point.

        Holy cr_p! I'm going to the pub, we'll see what comes out after lunch! :laugh:


        Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

        N Offline
        N Offline
        NormDroid
        wrote on last edited by
        #40

        :beer:

        www.software-kinetics.co.uk Wear a hard hat it's under construction

        N 1 Reply Last reply
        0
        • H hairy_hats

          Which is exactly why this is more of a programming question than a "lifestyle choice" question.

          N Offline
          N Offline
          NormDroid
          wrote on last edited by
          #41

          I'd say more of a debate, but as we all know rules of the lounge, I'd say just go along with it and chill :)

          www.software-kinetics.co.uk Wear a hard hat it's under construction

          H 1 Reply Last reply
          0
          • N NormDroid

            True, but you should know beforehand if the casting is correct.

            www.software-kinetics.co.uk Wear a hard hat it's under construction

            F Offline
            F Offline
            Fabio Franco
            wrote on last edited by
            #42

            If you do know something is not gonna be null, the cast is more efficient.

            N 1 Reply Last reply
            0
            • N NormDroid

              For those using c#, what do you prefer? A.

              SomeObject obj = (SomeObject) e;

              or B.

              SomeObject obj = e as SomeObject;

              www.software-kinetics.co.uk Wear a hard hat it's under construction

              S Offline
              S Offline
              Sahir Shah
              wrote on last edited by
              #43

              The second one sounds like some kind of hominid comrade Norm.

              Und wenn du lange in einen abgrund blickst, blickt der Abgrund auch in dich hinein.

              N 1 Reply Last reply
              0
              • F Fabio Franco

                If you do know something is not gonna be null, the cast is more efficient.

                N Offline
                N Offline
                NormDroid
                wrote on last edited by
                #44

                To add... and the cast is a qualified cast.

                www.software-kinetics.co.uk Wear a hard hat it's under construction

                1 Reply Last reply
                0
                • S Sahir Shah

                  The second one sounds like some kind of hominid comrade Norm.

                  Und wenn du lange in einen abgrund blickst, blickt der Abgrund auch in dich hinein.

                  N Offline
                  N Offline
                  NormDroid
                  wrote on last edited by
                  #45

                  Don't fancy seeing your code if you think b. looks like a great ape :rolleyes:

                  www.software-kinetics.co.uk Wear a hard hat it's under construction

                  S 1 Reply Last reply
                  0
                  • N NormDroid

                    For those using c#, what do you prefer? A.

                    SomeObject obj = (SomeObject) e;

                    or B.

                    SomeObject obj = e as SomeObject;

                    www.software-kinetics.co.uk Wear a hard hat it's under construction

                    OriginalGriffO Offline
                    OriginalGriffO Offline
                    OriginalGriff
                    wrote on last edited by
                    #46

                    B. I don't like to rely on exceptions for normal processing (they are slow and clumsy for that), so you have to check for null.

                    SomeObject obj = e as SomeObject;
                    if (obj != null)
                    {
                    ...
                    }

                    While

                    if (e != null && e is SomeObject)
                    {
                    SomeObject obj = (SomeObject) e;
                    ...
                    }

                    looks ugly. Plus, if you are going to use obj as a SomeObject instance, then the former is quicker since there is only one check on the type of e

                    Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together. Manfred R. Bihy: "Looks as if OP is learning resistant."

                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                    P 1 Reply Last reply
                    0
                    • R Ravi Bhavnani

                      It depends.  (A) will throw if the cast fails while (B) will evaluate to null if the cast fails.  I use both depending on how I intend to handle the casting failure. /ravi

                      My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                      J Offline
                      J Offline
                      jim lahey
                      wrote on last edited by
                      #47

                      I'm with Ravi on this one.I use both, the decision if which one to use is purely based upon what I need to happen should it go wrong

                      1 Reply Last reply
                      0
                      • N Nagy Vilmos

                        Not your name, your sig:

                        W∴ Balboos wrote:

                        Possibly a font-problem on your end?
                         
                        It looks roughly like: W**.'.** Balboos - the three punctuation-like characters being the HTML character code: & there4; (space put in after & so it doesn't render)

                        "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                        "As far as we know, our computer has never had an undetected error." - Weisert

                        "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                        There's a lot of white space...


                        Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

                        S Offline
                        S Offline
                        Sahir Shah
                        wrote on last edited by
                        #48

                        He's doin it on purpose to annoy you Senhor Vilmos. I thought you would have figured that out by now :D

                        Und wenn du lange in einen abgrund blickst, blickt der Abgrund auch in dich hinein.

                        1 Reply Last reply
                        0
                        • N NormDroid

                          For those using c#, what do you prefer? A.

                          SomeObject obj = (SomeObject) e;

                          or B.

                          SomeObject obj = e as SomeObject;

                          www.software-kinetics.co.uk Wear a hard hat it's under construction

                          N Offline
                          N Offline
                          Nemanja Trifunovic
                          wrote on last edited by
                          #49

                          It is not about preference. When I want an exception in case of type error I use A., and if I want a null I use B. I don't see a point of something like:

                          SomeObj obj = e as SomeObject;
                          if (obj == null)
                          throw new InvalidCastException();

                          Of course, in good languages casting is almost always a sign of a design error.

                          utf8-cpp

                          P 1 Reply Last reply
                          0
                          • R Richard A Dalton

                            If an illegal cast is an exceptional (woah, that should never happen) situation, then (a) If there's a possibility that through normal use the cast might be invalid (e.g. Plug-in tpye code), then (b), followed by an If to check for Null. -Richard

                            Hit any user to continue.

                            P Offline
                            P Offline
                            PIEBALDconsult
                            wrote on last edited by
                            #50

                            Richard A. Dalton wrote:

                            Plug-in tpye code

                            I don't have such problems with plug-ins.

                            P 1 Reply Last reply
                            0
                            • OriginalGriffO OriginalGriff

                              B. I don't like to rely on exceptions for normal processing (they are slow and clumsy for that), so you have to check for null.

                              SomeObject obj = e as SomeObject;
                              if (obj != null)
                              {
                              ...
                              }

                              While

                              if (e != null && e is SomeObject)
                              {
                              SomeObject obj = (SomeObject) e;
                              ...
                              }

                              looks ugly. Plus, if you are going to use obj as a SomeObject instance, then the former is quicker since there is only one check on the type of e

                              Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together. Manfred R. Bihy: "Looks as if OP is learning resistant."

                              P Offline
                              P Offline
                              PIEBALDconsult
                              wrote on last edited by
                              #51

                              OriginalGriff wrote:

                              (they are slow and clumsy for that

                              No they're not.

                              1 Reply Last reply
                              0
                              • N NormDroid

                                For those using c#, what do you prefer? A.

                                SomeObject obj = (SomeObject) e;

                                or B.

                                SomeObject obj = e as SomeObject;

                                www.software-kinetics.co.uk Wear a hard hat it's under construction

                                M Offline
                                M Offline
                                Mike Hankey
                                wrote on last edited by
                                #52

                                I used to use A (C upbringing) now I kinda favor B.

                                I Haven't Gone To Bed With Any Ugly Women, but I've Sure Woke Up With A Few.

                                1 Reply Last reply
                                0
                                • N NormDroid

                                  :beer:

                                  www.software-kinetics.co.uk Wear a hard hat it's under construction

                                  N Offline
                                  N Offline
                                  Nagy Vilmos
                                  wrote on last edited by
                                  #53

                                  Don't mind if I do. :beer: yourself.


                                  Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

                                  1 Reply Last reply
                                  0
                                  • N NormDroid

                                    The hand is quicker than the I eye.

                                    www.software-kinetics.co.uk Wear a hard hat it's under construction

                                    S Offline
                                    S Offline
                                    Sahir Shah
                                    wrote on last edited by
                                    #54

                                    Norm .net wrote:

                                    The hand is quicker than the I eye

                                    Too much hand is bad for the eye.

                                    Und wenn du lange in einen abgrund blickst, blickt der Abgrund auch in dich hinein.

                                    1 Reply Last reply
                                    0
                                    • N NormDroid

                                      For those using c#, what do you prefer? A.

                                      SomeObject obj = (SomeObject) e;

                                      or B.

                                      SomeObject obj = e as SomeObject;

                                      www.software-kinetics.co.uk Wear a hard hat it's under construction

                                      P Offline
                                      P Offline
                                      PIEBALDconsult
                                      wrote on last edited by
                                      #55

                                      Depends on the situation. Mostly proper casting, as occasionally, particularly when checking for a derived type.

                                      1 Reply Last reply
                                      0
                                      • N Nemanja Trifunovic

                                        It is not about preference. When I want an exception in case of type error I use A., and if I want a null I use B. I don't see a point of something like:

                                        SomeObj obj = e as SomeObject;
                                        if (obj == null)
                                        throw new InvalidCastException();

                                        Of course, in good languages casting is almost always a sign of a design error.

                                        utf8-cpp

                                        P Offline
                                        P Offline
                                        PIEBALDconsult
                                        wrote on last edited by
                                        #56

                                        I use A and never get an Exception, what are you people doing? :confused:

                                        N 1 Reply Last reply
                                        0
                                        • P PIEBALDconsult

                                          I use A and never get an Exception, what are you people doing? :confused:

                                          N Offline
                                          N Offline
                                          Nemanja Trifunovic
                                          wrote on last edited by
                                          #57

                                          PIEBALDconsult wrote:

                                          what are you people doing?

                                          SomeType obj = (SomeType)BloatedUglyUnreadableFrameworkFactory.CreateObject(someXMLStringThatIHopeWorksSometimesButNeverKnowForSure);

                                          utf8-cpp

                                          J P 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups