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# Object Initializer Syntax

C# Object Initializer Syntax

Scheduled Pinned Locked Moved The Lounge
csharpvisual-studio
45 Posts 22 Posters 47 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.
  • T TheGreatAndPowerfulOz

    If that causes an "unreadable mess", may I suggest that indicates a different problem.

    #SupportHeForShe Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun

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

    Yes, and that was the least of their problems. They also found it nice and well that the application logic resided under the data access layer, in stored procedures and triggers.

    The language is JavaScript. that of Mordor, which I will not utter here
    This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
    "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

    T 1 Reply Last reply
    0
    • I Ian Shlasko

      Yeah, that's just... ouch... If my objects ever have more than a couple dozen fields, I start thinking of the most logical way to split them up. But if you're manually initializing 150 fields at once, whether it's in one object or an object tree, it's time to rethink your design.

      Proud to have finally moved to the A-Ark. Which one are you in?
      Author of the Guardians Saga (Sci-Fi/Fantasy novels)

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

      The database already was a horror by itself, but could not be changed without risking a complete collapse. They were simply attempting to add something like data access classes and initializing data objects from data query results. It was a feeble attempt to bring some order to this application because a good part of the application logic was hidden in database triggers. Doing CRUD operations with data access objects usually had unexpected side effects.

      The language is JavaScript. that of Mordor, which I will not utter here
      This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
      "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

      1 Reply Last reply
      0
      • L Lost User

        Yes, and that was the least of their problems. They also found it nice and well that the application logic resided under the data access layer, in stored procedures and triggers.

        The language is JavaScript. that of Mordor, which I will not utter here
        This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
        "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

        T Offline
        T Offline
        TheGreatAndPowerfulOz
        wrote on last edited by
        #33

        X| X| X| X| X|                         X| X| X| X| X| X|                             X| X| X| X| X| X| X| X| X|               X| X|                             X| X|               X| X| X| X| X| X| X| X| X| X| X| X|           X|                                                X|      X| X| X| X| X| X| X| X| X| X| X| X| X| X|      X|                                                     X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X|      X|               X|      X|                    X| X| X| X| X| X|               &

        L 1 Reply Last reply
        0
        • T TheGreatAndPowerfulOz

          X| X| X| X| X|                         X| X| X| X| X| X|                             X| X| X| X| X| X| X| X| X|               X| X|                             X| X|               X| X| X| X| X| X| X| X| X| X| X| X|           X|                                                X|      X| X| X| X| X| X| X| X| X| X| X| X| X| X|      X|                                                     X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X|      X|               X|      X|                    X| X| X| X| X| X|               &

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

          Right.

          The language is JavaScript. that of Mordor, which I will not utter here
          This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
          "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

          1 Reply Last reply
          0
          • J Jacquers

            Just a personal preference, but I've come to dislike the look of this syntax. I think it's the indentation. StudentName student2 = new StudentName { FirstName = "Craig", LastName = "Playstead", }; vs StudentName student2 = new StudentName(); student2.FirstName = "Craig"; student2.LastName = "Playstead";

            R Offline
            R Offline
            Rage
            wrote on last edited by
            #35

            Initializing is for sissies. Real programmers do not initialize.

            Do not escape reality : improve reality !

            1 Reply Last reply
            0
            • J Jacquers

              Just a personal preference, but I've come to dislike the look of this syntax. I think it's the indentation. StudentName student2 = new StudentName { FirstName = "Craig", LastName = "Playstead", }; vs StudentName student2 = new StudentName(); student2.FirstName = "Craig"; student2.LastName = "Playstead";

              K Offline
              K Offline
              Kiriander
              wrote on last edited by
              #36

              I woud simply use a parametrized constructor to construct and initialize the instance at once. var student2=new StidentName("Craig","Playstead");

              1 Reply Last reply
              0
              • J Jacquers

                Just a personal preference, but I've come to dislike the look of this syntax. I think it's the indentation. StudentName student2 = new StudentName { FirstName = "Craig", LastName = "Playstead", }; vs StudentName student2 = new StudentName(); student2.FirstName = "Craig"; student2.LastName = "Playstead";

                M Offline
                M Offline
                Middle Manager
                wrote on last edited by
                #37

                Sadly I've been corrupted by javascript and I am currently finding this the most readable (and I do this for SQL as well for INSERT INTO column lists)

                StudentName student2 = new StudentName {
                FirstName = "Craig",
                LastName = "Playstead"
                };

                I know, I've gone rabid and need to be put down out of humane concern. :sigh:

                L 1 Reply Last reply
                0
                • D Dan Neely

                  Give it another iteration of new language features and we'll probably have the even shorter C++ version. At times I wish they went faster but at least MS is steadily chipping away at language verbosity in C#; unlike Sun/whOracle who seem to revel in Java's bloatyness. :doh:

                  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

                  K Offline
                  K Offline
                  Kirk 10389821
                  wrote on last edited by
                  #38

                  I would Java.Lang.Objection.RaiseSpecificObjection.Object to that slam on Java being wordy! :-)

                  1 Reply Last reply
                  0
                  • M Munchies_Matt

                    I always use your second style here, all function calls are broken up with one param per line, all neatly lined up. (I am so anal about code tidyness :) )

                    K Offline
                    K Offline
                    Kirk 10389821
                    wrote on last edited by
                    #39

                    We actually align the = signs as well. It makes it MUCH easier to read the 2 columns of assignment! (so you shouldn't feel overly anal about it)

                    1 Reply Last reply
                    0
                    • J Jacquers

                      Just a personal preference, but I've come to dislike the look of this syntax. I think it's the indentation. StudentName student2 = new StudentName { FirstName = "Craig", LastName = "Playstead", }; vs StudentName student2 = new StudentName(); student2.FirstName = "Craig"; student2.LastName = "Playstead";

                      K Offline
                      K Offline
                      Kirk 10389821
                      wrote on last edited by
                      #40

                      I always hated that style of indent = { indent. When I learned C it was:

                      void main()
                      {
                      IndentedCodeHere;
                      }

                      I cringed when I saw:

                      void main()
                      {
                      CodeHere;
                      }

                      as if that made it easier to read. Then JavaScript came in

                      function main() {
                      Codehere;
                      }

                      Which I can live with, and I get. But it just seems wrong. It is VERY hard to match the braces visually, but the editors do it for me... But indentation matters.

                      1 Reply Last reply
                      0
                      • J Jacquers

                        Just a personal preference, but I've come to dislike the look of this syntax. I think it's the indentation. StudentName student2 = new StudentName { FirstName = "Craig", LastName = "Playstead", }; vs StudentName student2 = new StudentName(); student2.FirstName = "Craig"; student2.LastName = "Playstead";

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

                        Am I not seeing what you're seeing? I don't see ANY indentation there. FWIW, I prefer this indentation:

                        var student2 = new StudentName
                        {
                        FirstName = "Craig",
                        LastName = "Playstead",
                        };

                        M 1 Reply Last reply
                        0
                        • J jfren484

                          Am I not seeing what you're seeing? I don't see ANY indentation there. FWIW, I prefer this indentation:

                          var student2 = new StudentName
                          {
                          FirstName = "Craig",
                          LastName = "Playstead",
                          };

                          M Offline
                          M Offline
                          Middle Manager
                          wrote on last edited by
                          #42

                          Just a personal thing but I hate code visually floating out to the right. I get that it lines up with the "new" but I find that disturbing, like I need to go in and fix it OCD style. I see the same thing with some default SQL formatters (like from RedGate). First thing I go to customize.

                          1 Reply Last reply
                          0
                          • M Middle Manager

                            Sadly I've been corrupted by javascript and I am currently finding this the most readable (and I do this for SQL as well for INSERT INTO column lists)

                            StudentName student2 = new StudentName {
                            FirstName = "Craig",
                            LastName = "Playstead"
                            };

                            I know, I've gone rabid and need to be put down out of humane concern. :sigh:

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

                            Exactly what I like to use ... except I would never have a "student2" ... maybe "classClown"; etc.

                            1 Reply Last reply
                            0
                            • R realJSOP

                              StudentName student2 = new StudentName
                              {
                              FirstName = "Craig"
                              ,LastName = "Playstead"
                              };

                              Nothing at all wrong with that, and requires less typing than your preferred method. Of course, the ultimate in "less typing" is a constructor with a parameter for each property:

                              StudentName student2 = new StudentName("Craig", "Playstead");

                              In the end, your preference doesn't matter within the context of your employer's coding standards, and no matter which way you go, they all do essentially the same thing.

                              ".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
                              -----
                              When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

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

                              It's not quite the same, in the matter of debugging. If initializing gets a little more complex, the former syntax do not allow stepping to find which assignment is throwing the exception. It's not the end of the world, but it slows you down, so I prefer the latter. It doesn't even require more typing as you can type several lines at the same time in the editor.

                              To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

                              1 Reply Last reply
                              0
                              • D Dan Neely

                                Give it another iteration of new language features and we'll probably have the even shorter C++ version. At times I wish they went faster but at least MS is steadily chipping away at language verbosity in C#; unlike Sun/whOracle who seem to revel in Java's bloatyness. :doh:

                                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

                                B Offline
                                B Offline
                                Brady Kelly
                                wrote on last edited by
                                #45

                                I just love it. Most of the terseness is easy to read as well, except those LINQ monsters that ReSharper turns your loops into. Even a few of them are easier to read.

                                Do what thou wilt shall be the whole of the Law. - Liber AL vel Legis 1:40, Aleister Crowley

                                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