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. To like or dislike C Sharp

To like or dislike C Sharp

Scheduled Pinned Locked Moved The Lounge
csharpc++learning
44 Posts 27 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.
  • W W Balboos GHB

    Impenetrable? Humph. Anyway - not to start a debate, but don't you find something intrinsically wrong with your example? Class inside of class (inside of class (inside of class (inside of class (inside of class (inside of class . . . ??? I look at it this way C# is a good lure to get lifetime-rookies away from VB. But it hides what you're really doing. There's no distinction, visibly between a namespace or a class in terms of separation, for example. (in C++, we have ::, ., and -> vs. . the C#). It makes things easier and masks understanding. I also like the possibility of multiple inheritance without a cascade of derivations - not too often, but when I want it I want it) It's not so much cut-down as light. Per my VB->C# view, that's a good thing . . . as an intermediate step to the real thing.

    "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

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

    *cough* C# has the dereferencing operator -> but it's only available in unsafe code. I agree, something like the scope resolution operator would be useful, but it's not vital. No I don't find anything "intrinsically wrong" - if a class is supposed to be used only within a different class, then why the heck not declare it within that class? It doesn't have to be in the same file if you use partial classes, and it does reflect the structure of the code better than C++ friend in my opinion. BTW: I came up through C -> C++ -> C# and I occasionally do still use C and C++. C++ shows it's ancestry, while C# shows it was designed to work with .NET from day one. Linq and suchlike are obvious bolt-ons which could have been done so much better if they had been considered when C# was designed - as could many features of modern C++! :laugh:

    "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

    1 Reply Last reply
    0
    • A Argonia

      At work i am working alone on the only remaining c++ project. But now new we started working on a new project in c#. So i am writing one of its projects (I pity my coworkers for working with me on the same project) and i was thinking "Oh i will make The class A private so it will be used only with the Class B and just use friend" but of course M$ had other ideas. Today was a good day i found another reason to dislike C Sharp. So i wonder what makes you people like or dislike C Sharp

      Microsoft ... the only place where VARIANT_TRUE != true

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

      Here is my point of view[^]. It was written in 2008, and after that I had opportunity to work with both languages, but my opinion is pretty much the same: C# is good enough for a typical enterprise application, but there is really nothing interesting or exciting about it.

      utf8-cpp

      1 Reply Last reply
      0
      • A Argonia

        At work i am working alone on the only remaining c++ project. But now new we started working on a new project in c#. So i am writing one of its projects (I pity my coworkers for working with me on the same project) and i was thinking "Oh i will make The class A private so it will be used only with the Class B and just use friend" but of course M$ had other ideas. Today was a good day i found another reason to dislike C Sharp. So i wonder what makes you people like or dislike C Sharp

        Microsoft ... the only place where VARIANT_TRUE != true

        D Offline
        D Offline
        Don Kackman
        wrote on last edited by
        #33

        It's been awhile since I've worked in C++ but as I skim stackoverflow and glance at the occasional specificaiton or example of C++11 I can't help but think to myself that it has become an amalgam of every computer language trend since C. How anybody figures out to write C++11 coherently, using the correct language features, at the correct time in the correct way is now beyond me. So I for one do not miss friend classes or private inheritance (or multiple inheriteance for that matter). I say Yay C# for its relative simplicity!

        10 PRINT "Software is hard. - D. Knuth" 20 GOTO 10

        1 Reply Last reply
        0
        • A Argonia

          At work i am working alone on the only remaining c++ project. But now new we started working on a new project in c#. So i am writing one of its projects (I pity my coworkers for working with me on the same project) and i was thinking "Oh i will make The class A private so it will be used only with the Class B and just use friend" but of course M$ had other ideas. Today was a good day i found another reason to dislike C Sharp. So i wonder what makes you people like or dislike C Sharp

          Microsoft ... the only place where VARIANT_TRUE != true

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

          I like C#. I don't like C++.

          1 Reply Last reply
          0
          • A Argonia

            At work i am working alone on the only remaining c++ project. But now new we started working on a new project in c#. So i am writing one of its projects (I pity my coworkers for working with me on the same project) and i was thinking "Oh i will make The class A private so it will be used only with the Class B and just use friend" but of course M$ had other ideas. Today was a good day i found another reason to dislike C Sharp. So i wonder what makes you people like or dislike C Sharp

            Microsoft ... the only place where VARIANT_TRUE != true

            M Offline
            M Offline
            Marc Clifton
            wrote on last edited by
            #35

            Argonia wrote:

            Oh i will make The class A private so it will be used only with the Class B and just use friend

            Good grief. Even when I was coding C++ (which I did for years) I thought private classes and "friends" were a bad design. Yes, C++ templates are a lot more flexible than C# generics, yes, multiple inheritance does have its uses when used carefully and interfaces don't always cut it, but other than that, I quite enjoy the ease of C# development. And you can specify "friend" assemblies in C#, but again, I consider it a bad idea. Marc

            Day 1: Spider Database Navigator Unit Testing Succinctly

            P pkfoxP 2 Replies Last reply
            0
            • C Chris Losinger

              OriginalGriff wrote:

              it is a lot harder to write impenetrable cr@p in C# than it is in C++.

              maybe, as long as you don't get near LINQ or anonymous functions.

              image processing toolkits | batch image processing

              D Offline
              D Offline
              Dan Neely
              wrote on last edited by
              #36

              It's a new syntax; but as long as you resist the urge to be stupid* with it linq one liners can be as easy to understand as the 3-6 line loops they replaced while taking less actual time to read because they're much shorter. * Or to click yes every time R#er says "I can Linqify that loop for you" because it can and does produce truly awful results in some cases. OTOH most of those WTFs can also be written as a much nicer Linq expression if you ask Google for advice.

              Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

              1 Reply Last reply
              0
              • A Argonia

                At work i am working alone on the only remaining c++ project. But now new we started working on a new project in c#. So i am writing one of its projects (I pity my coworkers for working with me on the same project) and i was thinking "Oh i will make The class A private so it will be used only with the Class B and just use friend" but of course M$ had other ideas. Today was a good day i found another reason to dislike C Sharp. So i wonder what makes you people like or dislike C Sharp

                Microsoft ... the only place where VARIANT_TRUE != true

                D Offline
                D Offline
                Deflinek
                wrote on last edited by
                #37

                Argonia wrote:

                "Oh i will make The class A private so it will be used only with the Class B and just use friend"

                Ahhh the joys of C++, where friends can touch your private mem.... ;)

                -- "My software never has bugs. It just develops random features."

                1 Reply Last reply
                0
                • G Gizz

                  Seconded. Anyway, friend? really?

                  A Offline
                  A Offline
                  Albert Holguin
                  wrote on last edited by
                  #38

                  Nobody likes friends! ;P :laugh:

                  1 Reply Last reply
                  0
                  • L Lost User

                    Most C++ programmers starting with C# like it. Maybe you don't like C++?

                    A Offline
                    A Offline
                    Albert Holguin
                    wrote on last edited by
                    #39

                    I don't think I'd agree with that statement...

                    1 Reply Last reply
                    0
                    • M Marc Clifton

                      Argonia wrote:

                      Oh i will make The class A private so it will be used only with the Class B and just use friend

                      Good grief. Even when I was coding C++ (which I did for years) I thought private classes and "friends" were a bad design. Yes, C++ templates are a lot more flexible than C# generics, yes, multiple inheritance does have its uses when used carefully and interfaces don't always cut it, but other than that, I quite enjoy the ease of C# development. And you can specify "friend" assemblies in C#, but again, I consider it a bad idea. Marc

                      Day 1: Spider Database Navigator Unit Testing Succinctly

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

                      Hear! Hear!

                      1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        I like it. If you stop thinking "cut down C++" and consider it as a separate language in it's own right, it is very good - in some ways a lot better than C++ in that it is a lot harder to write impenetrable cr@p in C# than it is in C++. If you want a class that is only available to Class B, then declare it as private and part of the B Class:

                        public class B
                        {
                        private class A
                        {
                        ...
                        }
                        A a = new A();
                        }

                        J Offline
                        J Offline
                        jschell
                        wrote on last edited by
                        #41

                        OriginalGriff wrote:

                        in that it is a lot harder to write impenetrable cr@p in C# than it is in C++.

                        Pretty sure it is ridiculously easy to write impenetrable code in any language.

                        1 Reply Last reply
                        0
                        • M Marc Clifton

                          Argonia wrote:

                          Oh i will make The class A private so it will be used only with the Class B and just use friend

                          Good grief. Even when I was coding C++ (which I did for years) I thought private classes and "friends" were a bad design. Yes, C++ templates are a lot more flexible than C# generics, yes, multiple inheritance does have its uses when used carefully and interfaces don't always cut it, but other than that, I quite enjoy the ease of C# development. And you can specify "friend" assemblies in C#, but again, I consider it a bad idea. Marc

                          Day 1: Spider Database Navigator Unit Testing Succinctly

                          pkfoxP Offline
                          pkfoxP Offline
                          pkfox
                          wrote on last edited by
                          #42

                          +1 for not liking *friends* they go against the grain of *encapsulation* for one thing, and another thing *I don't like them* ;-) We can’t stop here, this is bat country - Hunter S Thompson RIP

                          1 Reply Last reply
                          0
                          • P Pete OHanlon

                            Argonia wrote:

                            After few years/decades/centuries(lets hope) M$ will stop supporting .Net Platform and c# will die with it.

                            Why would C# die with it? It doesn't need to run on .NET - there is at least one alternative to the .NET framework, and C# is now producing code for iOS and Android as well.

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

                            Exactly; a language is just a language. In theory it can be implemented for any system.

                            1 Reply Last reply
                            0
                            • C Chris Losinger

                              OriginalGriff wrote:

                              it is a lot harder to write impenetrable cr@p in C# than it is in C++.

                              maybe, as long as you don't get near LINQ or anonymous functions.

                              image processing toolkits | batch image processing

                              R Offline
                              R Offline
                              Rob Philpott
                              wrote on last edited by
                              #44

                              Yes, yes, yes. 100% yes.

                              Regards, Rob Philpott.

                              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