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. var abuse

var abuse

Scheduled Pinned Locked Moved The Lounge
question
50 Posts 17 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.
  • H hairy_hats

    List list=new List(); is only one extra character to type, and is clearer IMO.

    R Offline
    R Offline
    RugbyLeague
    wrote on last edited by
    #8

    Declarations get a lot more complex than that and it is wasteful to repeat it on both sides.

    1 Reply Last reply
    0
    • M Mario Majcica

      And why? I can understand some cases in which you want to make code more compact, as

      List myName = new List();

      to use a

      var myName = new List();

      or as mentioned before in cases that you do not know the return type. But using always var only because of laziness, just pisses me of!

      R Offline
      R Offline
      RugbyLeague
      wrote on last edited by
      #9

      I agree. It has its uses but also its abuses

      1 Reply Last reply
      0
      • M Mario Majcica

        I'm so pissed of by var abusers. They do not understand that are making code unreadable, for what, writing var instead of string? Having the same problems in your company? ex.

        var metadataValues = new List<object>();
        foreach (var metadataDefName in metadataDefNames)
        {
        var name = metadataDefName;
        // Search definition with the same name.
        var metadata = metadataCollection.FirstOrDefault(
        metadataDef => String.Equals(metadataDef.MetaData.Name, name, StringComparison.OrdinalIgnoreCase));
        ...

        Cheers!

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

        Or you are using ReSharper and tell it to autofix the "problems" in your code.

        Forgive your enemies - it messes with their heads

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

        M L 2 Replies Last reply
        0
        • M Mario Majcica

          I'm so pissed of by var abusers. They do not understand that are making code unreadable, for what, writing var instead of string? Having the same problems in your company? ex.

          var metadataValues = new List<object>();
          foreach (var metadataDefName in metadataDefNames)
          {
          var name = metadataDefName;
          // Search definition with the same name.
          var metadata = metadataCollection.FirstOrDefault(
          metadataDef => String.Equals(metadataDef.MetaData.Name, name, StringComparison.OrdinalIgnoreCase));
          ...

          Cheers!

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

          It's VB creep: The bits of VB that mean that you don't have to think about what you are doing are slowly being introduced to C#. Coming soon: "On Error Resume Next" Then it will be time to go back to C++ because C# will be mostly used by lazy idiots who don't care a fig for maintenance.

          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

          M F V 3 Replies Last reply
          0
          • P Pete OHanlon

            Or you are using ReSharper and tell it to autofix the "problems" in your code.

            Forgive your enemies - it messes with their heads

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

            M Offline
            M Offline
            Mario Majcica
            wrote on last edited by
            #12

            Is there a function in ReSharper that teaches up colleagues not doing it? :) I tried in many ways to explain why of some practices, even tried to make them read the book as http://www.amazon.com/Practical-Guidelines-Practices-Developers-Pro-Developer/dp/0735621721[^] but nothing. The most difficult think is to convince people to change! But without the passion for your job, it is a difficult task (to change).

            1 Reply Last reply
            0
            • OriginalGriffO OriginalGriff

              It's VB creep: The bits of VB that mean that you don't have to think about what you are doing are slowly being introduced to C#. Coming soon: "On Error Resume Next" Then it will be time to go back to C++ because C# will be mostly used by lazy idiots who don't care a fig for maintenance.

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

              M Offline
              M Offline
              Mario Majcica
              wrote on last edited by
              #13

              I think you're right. But I hope not! Recently I helped on a badly written project in VB.NET and it was a nightmare.

              1 Reply Last reply
              0
              • OriginalGriffO OriginalGriff

                It's VB creep: The bits of VB that mean that you don't have to think about what you are doing are slowly being introduced to C#. Coming soon: "On Error Resume Next" Then it will be time to go back to C++ because C# will be mostly used by lazy idiots who don't care a fig for maintenance.

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

                F Offline
                F Offline
                Firo Atrum Ventus
                wrote on last edited by
                #14

                OriginalGriff wrote:

                Coming soon: "On Error Resume Next"

                I thought it was "On Error GoTo Hell" Oh well, I never attend VB class in the second year of my high school

                You can flame me whichever way you want and I wouldn't care a bit. But if you group me with some idiots, I'll turn into your worst nightmare.

                OriginalGriffO 1 Reply Last reply
                0
                • F Firo Atrum Ventus

                  OriginalGriff wrote:

                  Coming soon: "On Error Resume Next"

                  I thought it was "On Error GoTo Hell" Oh well, I never attend VB class in the second year of my high school

                  You can flame me whichever way you want and I wouldn't care a bit. But if you group me with some idiots, I'll turn into your worst nightmare.

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

                  :laugh: No, Resume Next is much more damaging in the long term!

                  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

                  1 Reply Last reply
                  0
                  • M Mario Majcica

                    I'm so pissed of by var abusers. They do not understand that are making code unreadable, for what, writing var instead of string? Having the same problems in your company? ex.

                    var metadataValues = new List<object>();
                    foreach (var metadataDefName in metadataDefNames)
                    {
                    var name = metadataDefName;
                    // Search definition with the same name.
                    var metadata = metadataCollection.FirstOrDefault(
                    metadataDef => String.Equals(metadataDef.MetaData.Name, name, StringComparison.OrdinalIgnoreCase));
                    ...

                    Cheers!

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

                    I agree, I've seen code here with var used everywhere (C#), complained to the SW Architect, he sent out an email saying it sould only be used where required. It's the newest, youngest guy in the place using it most. It's F***in sloppy, lazy sh*t!

                    Pete

                    S 1 Reply Last reply
                    0
                    • R RugbyLeague

                      var list = new List(); is good var x = GetStuff(); is not good

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

                      RugbyLeague wrote:

                      var list = new List();
                       
                      is good

                      WTF!!! IList<string> list = new List<string>(); // is good (your < and > hid the string bit (I think)) List<string> list = new List<string>(); // is good var list = new List<string>(); // is sloppy, lazy sh1t!

                      Pete

                      R 1 Reply Last reply
                      0
                      • P Peter Mulholland

                        RugbyLeague wrote:

                        var list = new List();
                         
                        is good

                        WTF!!! IList<string> list = new List<string>(); // is good (your < and > hid the string bit (I think)) List<string> list = new List<string>(); // is good var list = new List<string>(); // is sloppy, lazy sh1t!

                        Pete

                        R Offline
                        R Offline
                        RugbyLeague
                        wrote on last edited by
                        #18

                        Ah, I wondered what happened to the generics bit on my OP How is it sloppy and lazy?

                        P 2 Replies Last reply
                        0
                        • R RugbyLeague

                          Ah, I wondered what happened to the generics bit on my OP How is it sloppy and lazy?

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

                          You know what the variable type is, so declare it!

                          Pete

                          R 1 Reply Last reply
                          0
                          • P Peter Mulholland

                            You know what the variable type is, so declare it!

                            Pete

                            R Offline
                            R Offline
                            RugbyLeague
                            wrote on last edited by
                            #20

                            Why? What is the point of repeating information?

                            N 1 Reply Last reply
                            0
                            • P Peter Mulholland

                              I agree, I've seen code here with var used everywhere (C#), complained to the SW Architect, he sent out an email saying it sould only be used where required. It's the newest, youngest guy in the place using it most. It's F***in sloppy, lazy sh*t!

                              Pete

                              S Offline
                              S Offline
                              Slacker007
                              wrote on last edited by
                              #21

                              Peter Mulholland wrote:

                              It's F***in sloppy, lazy sh*t!

                              :thumbsup:

                              ----------------------------- Just along for the ride. -----------------------------

                              1 Reply Last reply
                              0
                              • R RugbyLeague

                                Ah, I wondered what happened to the generics bit on my OP How is it sloppy and lazy?

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

                                Coming from a C++ background, I feel it doesn't improve the readability of the code, particularly when used to accept a return value from a method. In my experience, those that like it overuse and abuse it. It was a mistake to add it to the C# language.

                                Pete

                                R N 2 Replies Last reply
                                0
                                • P Peter Mulholland

                                  Coming from a C++ background, I feel it doesn't improve the readability of the code, particularly when used to accept a return value from a method. In my experience, those that like it overuse and abuse it. It was a mistake to add it to the C# language.

                                  Pete

                                  R Offline
                                  R Offline
                                  RugbyLeague
                                  wrote on last edited by
                                  #23

                                  I come from a C++ background too and I like var - I agree using it to accept a return value from a method is a poor use of it.

                                  1 Reply Last reply
                                  0
                                  • M Mario Majcica

                                    And why? I can understand some cases in which you want to make code more compact, as

                                    List myName = new List();

                                    to use a

                                    var myName = new List();

                                    or as mentioned before in cases that you do not know the return type. But using always var only because of laziness, just pisses me of!

                                    B Offline
                                    B Offline
                                    BobJanova
                                    wrote on last edited by
                                    #24

                                    The 'why' is because the type is already there in the line, so using var doesn't remove any information. Personally I only use it very rarely but that's a matter of style, I think it is fine when the type is in the line anyway (either as a new expression or an explicit cast: var something = (TypeName)expression).

                                    1 Reply Last reply
                                    0
                                    • M Mario Majcica

                                      I'm so pissed of by var abusers. They do not understand that are making code unreadable, for what, writing var instead of string? Having the same problems in your company? ex.

                                      var metadataValues = new List<object>();
                                      foreach (var metadataDefName in metadataDefNames)
                                      {
                                      var name = metadataDefName;
                                      // Search definition with the same name.
                                      var metadata = metadataCollection.FirstOrDefault(
                                      metadataDef => String.Equals(metadataDef.MetaData.Name, name, StringComparison.OrdinalIgnoreCase));
                                      ...

                                      Cheers!

                                      L Offline
                                      L Offline
                                      leppie
                                      wrote on last edited by
                                      #25

                                      Reason for my 1 vote: There is nothing wrong with that. If you need to get the type, just hover over the 'var' in the IDE.

                                      ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                                      M B P 3 Replies Last reply
                                      0
                                      • L leppie

                                        Reason for my 1 vote: There is nothing wrong with that. If you need to get the type, just hover over the 'var' in the IDE.

                                        ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                                        M Offline
                                        M Offline
                                        Mario Majcica
                                        wrote on last edited by
                                        #26

                                        Meanwhile I'm reading the code I can't constantly hover the vars! Com'on, how can you say that??? :) And this is the lounge, I'm not discussing about what should be a good practice, I lament about things that makes me piss off.

                                        L 1 Reply Last reply
                                        0
                                        • P Pete OHanlon

                                          Or you are using ReSharper and tell it to autofix the "problems" in your code.

                                          Forgive your enemies - it messes with their heads

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

                                          L Offline
                                          L Offline
                                          leppie
                                          wrote on last edited by
                                          #27

                                          Well put. Exactly why I do NOT use handholding tools like Reshaper. Clearly their definition of 'problems' is very subjective, and personally does not suite me. I write the code exactly how I want it!

                                          ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                                          H 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