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. Other Discussions
  3. The Back Room
  4. WTF (.NET?)

WTF (.NET?)

Scheduled Pinned Locked Moved The Back Room
c++questioncsharp
20 Posts 11 Posters 2 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.
  • B Offline
    B Offline
    bob16972
    wrote on last edited by
    #1

    I was just casually strolling through VB'land and came across a question that had a snippet with this in it... If Result = System.Windows.Forms.DialogResult.OK Then I'm not a .NET person so forgive my inexperienced eyes, but are they really serious? That's quite long winded for something so trivial and probably common place. It makes me embrace my simple native loving VC++ 6.0 even tighter. This is a sad world indeed if that's progress. We are just asking for a repetitive motion injury with coding like that!

    R C L 3 Replies Last reply
    0
    • B bob16972

      I was just casually strolling through VB'land and came across a question that had a snippet with this in it... If Result = System.Windows.Forms.DialogResult.OK Then I'm not a .NET person so forgive my inexperienced eyes, but are they really serious? That's quite long winded for something so trivial and probably common place. It makes me embrace my simple native loving VC++ 6.0 even tighter. This is a sad world indeed if that's progress. We are just asking for a repetitive motion injury with coding like that!

      R Offline
      R Offline
      Red Stateler
      wrote on last edited by
      #2

      It's not necessary to do that whole thing. You can use the "using" directive in C# (using namespace in C++/CLI) to shorten the syntax. So at the top of the file you would have: using System.Windows.Forms; (C#) OR using namespace System::Windows::Forms; (C++/CLI) and your snippet in code would be: if(Result == DialogResult.OK) (C#)

      "Everything I listed is intended to eliminate the tyranny of the majority." -Vincent Reynolds on American Democracy

      B 1 Reply Last reply
      0
      • R Red Stateler

        It's not necessary to do that whole thing. You can use the "using" directive in C# (using namespace in C++/CLI) to shorten the syntax. So at the top of the file you would have: using System.Windows.Forms; (C#) OR using namespace System::Windows::Forms; (C++/CLI) and your snippet in code would be: if(Result == DialogResult.OK) (C#)

        "Everything I listed is intended to eliminate the tyranny of the majority." -Vincent Reynolds on American Democracy

        B Offline
        B Offline
        bob16972
        wrote on last edited by
        #3

        "using" directives can cause name clashing, can they not?

        -- modified at 12:33 Saturday 22nd July, 2006 How exactly is someone reading the code supposed to know which namespace something is from? If you have 25 "using" statements, they are going to have a hard time tracking down which class to look up in MSDN to understand it's usage later on when somebody else is maintaining your code. Am I missing something?

        P A 2 Replies Last reply
        0
        • B bob16972

          "using" directives can cause name clashing, can they not?

          -- modified at 12:33 Saturday 22nd July, 2006 How exactly is someone reading the code supposed to know which namespace something is from? If you have 25 "using" statements, they are going to have a hard time tracking down which class to look up in MSDN to understand it's usage later on when somebody else is maintaining your code. Am I missing something?

          P Offline
          P Offline
          peterchen
          wrote on last edited by
          #4

          They cause a clash only when you use an symbol that gets ambigous, and the clash can be resolved on symbol by symbol basis

          namespace a { void foo(); void bar(); }
          namespace b { void foo(); void baz(); }

          using namespace a;
          using namespace b;

          foo(); // ambigous, error
          a::foo(); // ok
          bar();
          baz();


          Some of us walk the memory lane, others plummet into a rabbit hole
          Tree in C# || Fold With Us! || sighist

          B 1 Reply Last reply
          0
          • P peterchen

            They cause a clash only when you use an symbol that gets ambigous, and the clash can be resolved on symbol by symbol basis

            namespace a { void foo(); void bar(); }
            namespace b { void foo(); void baz(); }

            using namespace a;
            using namespace b;

            foo(); // ambigous, error
            a::foo(); // ok
            bar();
            baz();


            Some of us walk the memory lane, others plummet into a rabbit hole
            Tree in C# || Fold With Us! || sighist

            B Offline
            B Offline
            bob16972
            wrote on last edited by
            #5

            I'm fine with single scope operators like a::foo(); MSXML2::IXMLDOMNodePtr pNode=NULL; MSXML2::IXMLDOMNodeListPtr pNodeList=NULL; I guess my issue is with how deep this .NET stuff gets in terms of levels in... System.Windows.Forms.DialogResult.OK Thats just excessive and overkill. The "DialogResult.OK" is potentially defined elsewhere making it an ambiguous symbol potentially in larger apps. "Using" the namespace is not really a good all around solution except in the classroom.

            -- modified at 14:18 Saturday 22nd July, 2006

            I R 2 Replies Last reply
            0
            • B bob16972

              I'm fine with single scope operators like a::foo(); MSXML2::IXMLDOMNodePtr pNode=NULL; MSXML2::IXMLDOMNodeListPtr pNodeList=NULL; I guess my issue is with how deep this .NET stuff gets in terms of levels in... System.Windows.Forms.DialogResult.OK Thats just excessive and overkill. The "DialogResult.OK" is potentially defined elsewhere making it an ambiguous symbol potentially in larger apps. "Using" the namespace is not really a good all around solution except in the classroom.

              -- modified at 14:18 Saturday 22nd July, 2006

              I Offline
              I Offline
              Igor Sukhov
              wrote on last edited by
              #6

              "Using namespace" was considered bad when C++ was popular, but those times are long gone. "Using namespace" is the right and popular thing now and encouraged by any "Add something" wizard in Visual Studio.

              Best regards, ----------- Igor Sukhovhttp://sukhov.net

              -- modified at 12:02 Saturday 22nd July, 2006

              B P 2 Replies Last reply
              0
              • I Igor Sukhov

                "Using namespace" was considered bad when C++ was popular, but those times are long gone. "Using namespace" is the right and popular thing now and encouraged by any "Add something" wizard in Visual Studio.

                Best regards, ----------- Igor Sukhovhttp://sukhov.net

                -- modified at 12:02 Saturday 22nd July, 2006

                B Offline
                B Offline
                bob16972
                wrote on last edited by
                #7

                Igor Sukhov wrote:

                "Using namespace" is the right and popular thing now

                I'll remember to not use the scope operator as it is now wrong.:confused:

                Igor Sukhov wrote:

                when C++ was popular, but those times are long gone

                :rolleyes:

                1 Reply Last reply
                0
                • I Igor Sukhov

                  "Using namespace" was considered bad when C++ was popular, but those times are long gone. "Using namespace" is the right and popular thing now and encouraged by any "Add something" wizard in Visual Studio.

                  Best regards, ----------- Igor Sukhovhttp://sukhov.net

                  -- modified at 12:02 Saturday 22nd July, 2006

                  P Offline
                  P Offline
                  peterchen
                  wrote on last edited by
                  #8

                  As far as house rule goes "Using namespace" in a header is off limits, but not in a cpp


                  Some of us walk the memory lane, others plummet into a rabbit hole
                  Tree in C# || Fold With Us! || sighist

                  I 1 Reply Last reply
                  0
                  • B bob16972

                    I'm fine with single scope operators like a::foo(); MSXML2::IXMLDOMNodePtr pNode=NULL; MSXML2::IXMLDOMNodeListPtr pNodeList=NULL; I guess my issue is with how deep this .NET stuff gets in terms of levels in... System.Windows.Forms.DialogResult.OK Thats just excessive and overkill. The "DialogResult.OK" is potentially defined elsewhere making it an ambiguous symbol potentially in larger apps. "Using" the namespace is not really a good all around solution except in the classroom.

                    -- modified at 14:18 Saturday 22nd July, 2006

                    R Offline
                    R Offline
                    Robert Rohde
                    wrote on last edited by
                    #9

                    bob16972 wrote:

                    The "OK" is potentially defined elsewhere making it an ambiguous symbol potentially in larger apps.

                    Even when using the using statement you will have to write DialogResult.OK not only OK. Thus the chance of an ambiguouty is rather small. Robert

                    B 1 Reply Last reply
                    0
                    • R Robert Rohde

                      bob16972 wrote:

                      The "OK" is potentially defined elsewhere making it an ambiguous symbol potentially in larger apps.

                      Even when using the using statement you will have to write DialogResult.OK not only OK. Thus the chance of an ambiguouty is rather small. Robert

                      B Offline
                      B Offline
                      bob16972
                      wrote on last edited by
                      #10

                      I had already changed that once, but apparently my "modify" did not stick. I saw a comment like yours coming right after I originally posted it so I thought Id modify it but technology apparently failed me. I went ahead and re-clarified it. The "DialogResult.OK" could potentially be valid in other namespaces so my statement should bear some weight. For what it's worth...

                      J 1 Reply Last reply
                      0
                      • B bob16972

                        I had already changed that once, but apparently my "modify" did not stick. I saw a comment like yours coming right after I originally posted it so I thought Id modify it but technology apparently failed me. I went ahead and re-clarified it. The "DialogResult.OK" could potentially be valid in other namespaces so my statement should bear some weight. For what it's worth...

                        J Offline
                        J Offline
                        J Dunlap
                        wrote on last edited by
                        #11

                        Unlikely - but in the case that there is a clash you can rename one of them locally:

                        using WFDialogResult = System.Windows.Forms.DialogResult;

                        1 Reply Last reply
                        0
                        • B bob16972

                          I was just casually strolling through VB'land and came across a question that had a snippet with this in it... If Result = System.Windows.Forms.DialogResult.OK Then I'm not a .NET person so forgive my inexperienced eyes, but are they really serious? That's quite long winded for something so trivial and probably common place. It makes me embrace my simple native loving VC++ 6.0 even tighter. This is a sad world indeed if that's progress. We are just asking for a repetitive motion injury with coding like that!

                          C Offline
                          C Offline
                          Christian Graus
                          wrote on last edited by
                          #12

                          The bit I don't get is why they have to store the result. The preceding line is almost certainly Dim Result as System.Windows.Forms.DialogResult = myForm.ShowDialog() Given that System.Windows.Forms is scope automatically anyhow, the code should look like this: if myForms.ShowDialog = DialogResult.OK Then

                          Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog

                          J 1 Reply Last reply
                          0
                          • C Christian Graus

                            The bit I don't get is why they have to store the result. The preceding line is almost certainly Dim Result as System.Windows.Forms.DialogResult = myForm.ShowDialog() Given that System.Windows.Forms is scope automatically anyhow, the code should look like this: if myForms.ShowDialog = DialogResult.OK Then

                            Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog

                            J Offline
                            J Offline
                            Jorgen Sigvardsson
                            wrote on last edited by
                            #13

                            Christian Graus wrote:

                            Given that System.Windows.Forms is scope automatically anyhow, the code should look like this: if myForms.ShowDialog = DialogResult.OK Then

                            Automatic due to a Koenig-like lookup, or because the wizard has injected a using System.Windows.Forms line somewhere in the file? If the former, then :cool:

                            -- From the Makers of Futurama

                            C N 2 Replies Last reply
                            0
                            • J Jorgen Sigvardsson

                              Christian Graus wrote:

                              Given that System.Windows.Forms is scope automatically anyhow, the code should look like this: if myForms.ShowDialog = DialogResult.OK Then

                              Automatic due to a Koenig-like lookup, or because the wizard has injected a using System.Windows.Forms line somewhere in the file? If the former, then :cool:

                              -- From the Makers of Futurama

                              C Offline
                              C Offline
                              Christian Graus
                              wrote on last edited by
                              #14

                              Latter, I am afraid. In C#, you also can't put a using statement for a single object in a namespace, AFAIK you can't do the equivelant of using std::cout;

                              Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog

                              1 Reply Last reply
                              0
                              • B bob16972

                                "using" directives can cause name clashing, can they not?

                                -- modified at 12:33 Saturday 22nd July, 2006 How exactly is someone reading the code supposed to know which namespace something is from? If you have 25 "using" statements, they are going to have a hard time tracking down which class to look up in MSDN to understand it's usage later on when somebody else is maintaining your code. Am I missing something?

                                A Offline
                                A Offline
                                Alvaro Mendez
                                wrote on last edited by
                                #15

                                bob16972 wrote:

                                "using" directives can cause name clashing, can they not?

                                Yes, but it's rare. The convenience of not having to always fully qualify type names far outweighs the possibility of name collisions. If a collision occurs, the compiler will let you know.

                                bob16972 wrote:

                                How exactly is someone reading the code supposed to know which namespace something is from? If you have 25 "using" statements, they are going to have a hard time tracking down which class to look up in MSDN to understand it's usage later on when somebody else is maintaining your code. Am I missing something?

                                Yes: 1. The Visual Studio IDE is happy to show you a tool tip with the fully qualified name of the class when you hover over it. 2. Visual Studio is smart enough to bring up the proper help page for a class, even when it's not fully qualified. Regards, Alvaro


                                The bible was written when people were even more stupid than they are today. Can you imagine that? - David Cross

                                B 1 Reply Last reply
                                0
                                • A Alvaro Mendez

                                  bob16972 wrote:

                                  "using" directives can cause name clashing, can they not?

                                  Yes, but it's rare. The convenience of not having to always fully qualify type names far outweighs the possibility of name collisions. If a collision occurs, the compiler will let you know.

                                  bob16972 wrote:

                                  How exactly is someone reading the code supposed to know which namespace something is from? If you have 25 "using" statements, they are going to have a hard time tracking down which class to look up in MSDN to understand it's usage later on when somebody else is maintaining your code. Am I missing something?

                                  Yes: 1. The Visual Studio IDE is happy to show you a tool tip with the fully qualified name of the class when you hover over it. 2. Visual Studio is smart enough to bring up the proper help page for a class, even when it's not fully qualified. Regards, Alvaro


                                  The bible was written when people were even more stupid than they are today. Can you imagine that? - David Cross

                                  B Offline
                                  B Offline
                                  bob16972
                                  wrote on last edited by
                                  #16

                                  Thanks for the info! I guess I never really noticed all the potential information from hovering. Most of the time it's redundant to what's on the code page so I'm guessing I got used to blanking it out and ignoring it.

                                  1 Reply Last reply
                                  0
                                  • J Jorgen Sigvardsson

                                    Christian Graus wrote:

                                    Given that System.Windows.Forms is scope automatically anyhow, the code should look like this: if myForms.ShowDialog = DialogResult.OK Then

                                    Automatic due to a Koenig-like lookup, or because the wizard has injected a using System.Windows.Forms line somewhere in the file? If the former, then :cool:

                                    -- From the Makers of Futurama

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

                                    Jörgen Sigvardsson wrote:

                                    Automatic due to a Koenig-like lookup

                                    :-D You give them way too much credit, my friend.


                                    My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.

                                    1 Reply Last reply
                                    0
                                    • P peterchen

                                      As far as house rule goes "Using namespace" in a header is off limits, but not in a cpp


                                      Some of us walk the memory lane, others plummet into a rabbit hole
                                      Tree in C# || Fold With Us! || sighist

                                      I Offline
                                      I Offline
                                      Igor Sukhov
                                      wrote on last edited by
                                      #18

                                      Thanks to the .NET we don't have to care about headers and source files, compilation and linking anymore. Does anybody know Microsoft plans for WTF (like Windows Transofrmation Foundation) abbreviation ?

                                      Best regards, ----------- Igor Sukhovhttp://sukhov.net

                                      P 1 Reply Last reply
                                      0
                                      • I Igor Sukhov

                                        Thanks to the .NET we don't have to care about headers and source files, compilation and linking anymore. Does anybody know Microsoft plans for WTF (like Windows Transofrmation Foundation) abbreviation ?

                                        Best regards, ----------- Igor Sukhovhttp://sukhov.net

                                        P Offline
                                        P Offline
                                        peterchen
                                        wrote on last edited by
                                        #19

                                        Thank god! using namespace "feels" ok in e.g. C# since it has a well defined scope. using namespace in a C++ header, otoh, is recipe for header-sorting disaster. The C++ compilation model is IMO the worst legacy about the language, and it would still be fixable.


                                        Some of us walk the memory lane, others plummet into a rabbit hole
                                        Tree in C# || Fold With Us! || sighist

                                        1 Reply Last reply
                                        0
                                        • B bob16972

                                          I was just casually strolling through VB'land and came across a question that had a snippet with this in it... If Result = System.Windows.Forms.DialogResult.OK Then I'm not a .NET person so forgive my inexperienced eyes, but are they really serious? That's quite long winded for something so trivial and probably common place. It makes me embrace my simple native loving VC++ 6.0 even tighter. This is a sad world indeed if that's progress. We are just asking for a repetitive motion injury with coding like that!

                                          L Offline
                                          L Offline
                                          Lost User
                                          wrote on last edited by
                                          #20

                                          Its the same in C++, if you use namespaceing. What is bizarre is that OK, an oft used constant, should be buried so deep. I suppose it is consistent, but where would you put 'TRUE' and 'FALSE'? How about, System.Logic.Boolean.Dualisim.Values.TRUE. Or should that be System.Logic.Dualism.Boolean.Values.TRUE. Kind of makes you wonder where you fit 'mu' logic but there you go.

                                          Tronché pas ma miche!

                                          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