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 Offline
    N Offline
    NormDroid
    wrote on last edited by
    #1

    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

    D H N R P 32 Replies 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

      H Offline
      H Offline
      hairy_hats
      wrote on last edited by
      #2

      Looks suspiciously like a programming question.

      D N 2 Replies 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

        D Offline
        D Offline
        Dalek Dave
        wrote on last edited by
        #3

        b It just looks prettier.

        ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

        N W 2 Replies Last reply
        0
        • H hairy_hats

          Looks suspiciously like a programming question.

          D Offline
          D Offline
          Dalek Dave
          wrote on last edited by
          #4

          No, I think it more of a lifestyle choice question.

          ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

          N H G 3 Replies Last reply
          0
          • H hairy_hats

            Looks suspiciously like a programming question.

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

            Hardly :|

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

            H 1 Reply Last reply
            0
            • D Dalek Dave

              No, I think it more of a lifestyle choice question.

              ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

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

              Thanks Dave, maybe Viaducting needs to get out more ;)

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

              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
                Nagy Vilmos
                wrote on last edited by
                #7

                I prefer as because it is safer:

                expression as type

                is equivalent to:

                expression is type ? (type)expression : (type)null

                When you use casting you can get StoopidTypeException.


                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 H P R 4 Replies Last reply
                0
                • D Dalek Dave

                  b It just looks prettier.

                  ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

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

                  a. Throw back from C++ programming.

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

                  Q 1 Reply Last reply
                  0
                  • N Nagy Vilmos

                    I prefer as because it is safer:

                    expression as type

                    is equivalent to:

                    expression is type ? (type)expression : (type)null

                    When you use casting you can get StoopidTypeException.


                    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
                    #9

                    Good point.

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

                    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

                      R Offline
                      R Offline
                      Ravi Bhavnani
                      wrote on last edited by
                      #10

                      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

                      N R J E 4 Replies Last reply
                      0
                      • D Dalek Dave

                        b It just looks prettier.

                        ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

                        W Offline
                        W Offline
                        W Balboos GHB
                        wrote on last edited by
                        #11

                        Sorry - wrong. The answer's a, because it's better.

                        "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

                        N B 2 Replies Last reply
                        0
                        • N NormDroid

                          Good point.

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

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

                          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 1 Reply Last reply
                          0
                          • N Nagy Vilmos

                            I prefer as because it is safer:

                            expression as type

                            is equivalent to:

                            expression is type ? (type)expression : (type)null

                            When you use casting you can get StoopidTypeException.


                            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

                            H Offline
                            H Offline
                            hairy_hats
                            wrote on last edited by
                            #13

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

                            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

                              P Offline
                              P Offline
                              Pete OHanlon
                              wrote on last edited by
                              #14

                              It depends on the situation. Normally, I prefer to cast with the as operator because I don't have to catch the exception, and it just feels more natural for me to not have code like this:

                              MyClass c = null;
                              try
                              {
                              c = (MyClass)variable;
                              }
                              catch(InvalidCastException)
                              {
                              c = new MyClass();
                              }

                              Of course, there are times where you can't use as, so in those cases you use the () casting form.

                              Forgive your enemies - it messes with their heads

                              My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

                              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

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

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

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

                                R F 2 Replies 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

                                  R Offline
                                  R Offline
                                  realJSOP
                                  wrote on last edited by
                                  #16

                                  Correct answer.

                                  ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                                  -----
                                  You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                                  -----
                                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                                  1 Reply Last reply
                                  0
                                  • D Dalek Dave

                                    No, I think it more of a lifestyle choice question.

                                    ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC Link[^] Trolls[^]

                                    H Offline
                                    H Offline
                                    hairy_hats
                                    wrote on last edited by
                                    #17

                                    No, because the two are not equivalent (see other posts below).

                                    O 1 Reply Last reply
                                    0
                                    • N Nagy Vilmos

                                      I prefer as because it is safer:

                                      expression as type

                                      is equivalent to:

                                      expression is type ? (type)expression : (type)null

                                      When you use casting you can get StoopidTypeException.


                                      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

                                      P Offline
                                      P Offline
                                      Peter Mulholland
                                      wrote on last edited by
                                      #18

                                      I did not know this. I'm currently working on stuff with a common base interface with multipe derived interfaces and I've been playing about with GetType and typeof to try to get the correct derived interface from a base interface. So reading lounge posts may have been productive today. :-D

                                      Pete

                                      1 Reply Last reply
                                      0
                                      • N NormDroid

                                        Hardly :|

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

                                        H Offline
                                        H Offline
                                        hairy_hats
                                        wrote on last edited by
                                        #19

                                        If a noob had asked that question in the Lounge they'd have been toast.

                                        N 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

                                          R Offline
                                          R Offline
                                          Ravi Bhavnani
                                          wrote on last edited by
                                          #20

                                          Norm .net wrote:

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

                                          "Should" is a dangerous word. :) A plugin discovery mechanism (that makes extensive use of reflection) I recently built assumes nothing regarding the type of object that was loaded. /ravi

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

                                          1 Reply 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