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.
  • A Aamir Butt

    Yeah... I always ended up using CComPtr to avoid reference-leak issues. MS should have banned direct use of QueryInterface and CoCreateInstance anyway. RAII should have been the way from onset.

    A year spent in artificial intelligence is enough to make one believe in God

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

    I used raw COM when the COM specs where first released, wow you needed a ton of code to do a small task. But it did give me background on the workings of COM.

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

    A 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.

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

      Richard A. Dalton wrote:

      Plug-in tpye code

      That's the only situation I could eve think off, normally you should be aware if the cast would fail or not.

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

      1 Reply Last reply
      0
      • N NormDroid

        I used raw COM when the COM specs where first released, wow you needed a ton of code to do a small task. But it did give me background on the workings of COM.

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

        A Offline
        A Offline
        Aamir Butt
        wrote on last edited by
        #29

        Norm .net wrote:

        wow you needed a ton of code to do a small task

        Check the section "Master Programmer" in this link. :)[^]

        A year spent in artificial intelligence is enough to make one believe in God

        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

          D Offline
          D Offline
          Dave Parker
          wrote on last edited by
          #30

          It depends on what you're trying to do, the two things are different. If you're certain e is a SomeObject then I'd cast it. If it may or may not be I'd usually use the as keyword, in which case obj would be null if it isn't a SomeObject as opposed to throwing an exception.

          1 Reply Last reply
          0
          • N Nagy Vilmos

            There seems to be alot of white space in your sig.


            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

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

            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

            N 1 Reply Last reply
            0
            • A Aamir Butt

              Norm .net wrote:

              wow you needed a ton of code to do a small task

              Check the section "Master Programmer" in this link. :)[^]

              A year spent in artificial intelligence is enough to make one believe in God

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

              Oh that brings back memories, and forgetting idl files :)

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

              1 Reply Last reply
              0
              • W W Balboos GHB

                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

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

                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 W 2 Replies Last reply
                0
                • N NormDroid

                  It's a debate, not a question.

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

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

                  To be or not to be.? That is a question. :-D


                  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

                    To be or not to be.? That is a question. :-D


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

                    Nope wrong, you've omitted the ? mark. ;)

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

                    N 1 Reply Last reply
                    0
                    • N NormDroid

                      Nope wrong, you've omitted the ? mark. ;)

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

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

                      Did I?


                      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

                        Did I?


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

                        The hand is quicker than the I eye.

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

                        S 1 Reply Last reply
                        0
                        • 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
                                          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