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. Celebrity Deathmatch (VB.NET vs C#)

Celebrity Deathmatch (VB.NET vs C#)

Scheduled Pinned Locked Moved The Lounge
csharphtmlcssvisual-studio
80 Posts 24 Posters 43 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.
  • N Nish Nishant

    Oh sorry, it's so well known that I didn't think you'd need code to back it up :-) See this blog post: http://blog.gadodia.net/extension-methods-in-vbnet-and-c/[^]

    Regards, Nish


    Are you addicted to CP? If so, check this out: The Code Project Forum Analyzer : Find out how much of a life you don't have! My technology blog: voidnish.wordpress.com

    R Offline
    R Offline
    Rob Grainger
    wrote on last edited by
    #48

    Nishant Sivakumar wrote:

    Oh sorry, it's so well known that I didn't think you'd need code to back it up

    maybe in your part of the world - I've been using C# and VB for years but never came across this. Why you'd want to do it in a well designed program is questionable, but maybe there is a good reason somewhere.

    1 Reply Last reply
    0
    • A AspDotNetDev

      I'll give an example reply as well... VB.NET is Backward Compatible with VB6

      On Error GoTo ErrorHandler
      Throw New Exception("Error!")
      Return
      

      ErrorHandler:
      MessageBox.Show("Darn!")

      C# does not have this handy backward compatibility, so upgrading from VB6 is more difficult when going to C#.

      [WikiLeaks Cablegate Cables]

      C Offline
      C Offline
      coding4ever
      wrote on last edited by
      #49

      AspDotNetDev wrote:

      VB.NET is Backward Compatible with VB6

      And this is supposed to be a good thing? ;P Though I will give you props for actually using an ErrorHandler and not simply going with On Error Resume Next like my predecessor did.

      S 1 Reply Last reply
      0
      • H hairy_hats

        AspDotNetDev wrote:

        You're turn

        Am I? ;P

        R Offline
        R Offline
        raducu1
        wrote on last edited by
        #50

        In VB.NET:

        With longDescriptiveObjectName
        .prop1 = ...
        .prop2 = ...
        .prop3 = ...
        end with

        In C#:

        longDescriptiveObjectName.prop1 = ...
        longDescriptiveObjectName.prop2 = ...
        longDescriptiveObjectName.prop3 = ...

        Which one is more verbose, then ?

        1 Reply Last reply
        0
        • H hairy_hats

          AspDotNetDev wrote:

          You're turn

          Am I? ;P

          R Offline
          R Offline
          raducu1
          wrote on last edited by
          #51

          Yes, you are VERY turn ! :((

          1 Reply Last reply
          0
          • N Nish Nishant

            The VB Select-Case is more flexible than just that. Example from MSDN:

            Dim number As Integer = 8
            Select Case number
            Case 1 To 5
            Debug.WriteLine("Between 1 and 5, inclusive")
            ' The following is the only Case clause that evaluates to True.
            Case 6, 7, 8
            Debug.WriteLine("Between 6 and 8, inclusive")
            Case 9 To 10
            Debug.WriteLine("Equal to 9 or 10")
            Case Else
            Debug.WriteLine("Not between 1 and 10, inclusive")
            End Select

            Regards, Nish


            Are you addicted to CP? If so, check this out: The Code Project Forum Analyzer : Find out how much of a life you don't have! My technology blog: voidnish.wordpress.com

            R Offline
            R Offline
            Rick Shaub
            wrote on last edited by
            #52

            In C# you can use fall through cases for that in C#.

            1 Reply Last reply
            0
            • H hairy_hats

              AspDotNetDev wrote:

              You're turn

              Am I? ;P

              R Offline
              R Offline
              raducu1
              wrote on last edited by
              #53

              Again. if a=b { do something } What's unclear here ? However, the compiler stops me with the question - do you want to assign b to a ? No, I don't. Isn't it obvious what I want to do ? VB doesn't need this handholding. Also, why do I need to type if (a=b) { do something } and what do those fing paranthesis do there ? If I wanted to better delimit the clauses, for human eyes benefit only, I would do that, as in, say, if ((a=b) && (c=d)) { } Also... operators. I really don't care how awkwardly they were named in C, C++, etc, but really, people, baggage should NOT be carried forward && instead of AND ? || instead of OR ? != instead of <> ! instead of NOT ? No, really, what am I ? A compiler ? My hands won't fall off if I type (cond1) AND (cond2) instead of (cond1) && (cond2). There's one extra character and it's so much clearer ! Why do so many people love cryptic code ? It's not like the writer of that code will seem to be any smarter ! Also, the compiler stops and hits me with a brick saying that in the line variable1 = "abc" variable2 = 5; I have missed the ending ; on the first line. Well... if you compiler are so sure about my missing of that fing semicolon, why don't you put it there ? Warn me, color it bright red, make it blink, but put it there if you are so sure I've missed it. Help me a bit. I write in C#, and I really like it, don't get me wrong. But that doesn't make me not see these (and others) things.

              1 Reply Last reply
              0
              • A AspDotNetDev

                There hasn't been a good "why language X sucks and language Y is better" thread in a good while, so I thought I'd start one. Unlike most, however, this one has rules. I will post a reason C# is better than VB.NET and somebody reply with a reason VB.NET is better than C#. I (or somebody else) will then reply to that message stating another reason C# is better. And so on. Also, you must show code examples (when appropriate). I'll start. C# Is Less Verbose

                Public Sub Something()
                ' VB.NET...
                End Sub

                public void Something()
                {
                // C#...
                }

                You're turn (post why VB.NET is better than C#). :)

                [WikiLeaks Cablegate Cables]

                F Offline
                F Offline
                frattaro
                wrote on last edited by
                #54

                Ever tried writing dynamic (X/HT)ML?

                Dim header =

                <%= publicationdate %>

                That's a lot easier than anything in C#. Stringbuilders, XMLwriters, whatever... doesn't beat VB.NET's XML Literals.

                A 1 Reply Last reply
                0
                • A AspDotNetDev

                  There hasn't been a good "why language X sucks and language Y is better" thread in a good while, so I thought I'd start one. Unlike most, however, this one has rules. I will post a reason C# is better than VB.NET and somebody reply with a reason VB.NET is better than C#. I (or somebody else) will then reply to that message stating another reason C# is better. And so on. Also, you must show code examples (when appropriate). I'll start. C# Is Less Verbose

                  Public Sub Something()
                  ' VB.NET...
                  End Sub

                  public void Something()
                  {
                  // C#...
                  }

                  You're turn (post why VB.NET is better than C#). :)

                  [WikiLeaks Cablegate Cables]

                  S Offline
                  S Offline
                  Smohd5
                  wrote on last edited by
                  #55

                  Your code snippet shows they are equal because the code are generated by the IDE

                  A 1 Reply Last reply
                  0
                  • C coding4ever

                    AspDotNetDev wrote:

                    VB.NET is Backward Compatible with VB6

                    And this is supposed to be a good thing? ;P Though I will give you props for actually using an ErrorHandler and not simply going with On Error Resume Next like my predecessor did.

                    S Offline
                    S Offline
                    Sterling Camden independent consultant
                    wrote on last edited by
                    #56

                    And actually, it isn't. Migrating VB6 code to VB.NET can be a royal pain, and usually ends up as a rewrite (in C#).

                    Contains coding, but not narcotic.

                    1 Reply Last reply
                    0
                    • A AspDotNetDev

                      I'll give an example reply as well... VB.NET is Backward Compatible with VB6

                      On Error GoTo ErrorHandler
                      Throw New Exception("Error!")
                      Return
                      

                      ErrorHandler:
                      MessageBox.Show("Darn!")

                      C# does not have this handy backward compatibility, so upgrading from VB6 is more difficult when going to C#.

                      [WikiLeaks Cablegate Cables]

                      P Offline
                      P Offline
                      programmervb netc
                      wrote on last edited by
                      #57

                      He said post something that makes it better just kidding. Humble Programmer

                      1 Reply Last reply
                      0
                      • T the Kris

                        This can much shorter! Step1() && Step2() && Step3();

                        A Offline
                        A Offline
                        AspDotNetDev
                        wrote on last edited by
                        #58

                        True, but it can only be used with a boolean value. The others can work with non-boolean values.

                        [WikiLeaks Cablegate Cables]

                        T 1 Reply Last reply
                        0
                        • F frattaro

                          Ever tried writing dynamic (X/HT)ML?

                          Dim header =

                          <%= publicationdate %>

                          That's a lot easier than anything in C#. Stringbuilders, XMLwriters, whatever... doesn't beat VB.NET's XML Literals.

                          A Offline
                          A Offline
                          AspDotNetDev
                          wrote on last edited by
                          #59

                          Yeah, that is nice.

                          [WikiLeaks Cablegate Cables]

                          1 Reply Last reply
                          0
                          • S Smohd5

                            Your code snippet shows they are equal because the code are generated by the IDE

                            A Offline
                            A Offline
                            AspDotNetDev
                            wrote on last edited by
                            #60

                            Huh? Did you reply to the right message? I don't know what you mean.

                            [WikiLeaks Cablegate Cables]

                            1 Reply Last reply
                            0
                            • A AspDotNetDev

                              True, but it can only be used with a boolean value. The others can work with non-boolean values.

                              [WikiLeaks Cablegate Cables]

                              T Offline
                              T Offline
                              the Kris
                              wrote on last edited by
                              #61

                              Does Func<bool> accept non-bool funcs? If not the other C# examples here only accept bool too. Or am I missing the point here?

                              A 1 Reply Last reply
                              0
                              • T the Kris

                                Does Func<bool> accept non-bool funcs? If not the other C# examples here only accept bool too. Or am I missing the point here?

                                A Offline
                                A Offline
                                AspDotNetDev
                                wrote on last edited by
                                #62

                                See the tip/trick I just posted. You don't have to use Func<bool>. You can use whatever return type you need. You can even use Func<Object> if you like. I'm not sure, but I think covariance or contravariance (I forget which is which) may allow you to still avoid having to wrap the functions in a new lambda.

                                [WikiLeaks Cablegate Cables]

                                1 Reply Last reply
                                0
                                • N Nemanja Trifunovic

                                  AspDotNetDev wrote:

                                  Maybe "End Sub" makes the code easier to read to somebody not initiated with the language, but it doesn't make the code any easier to write

                                  Which is a reasonable trade-off. You write code once and read it many times. Besides, with any decent editor, it is a non-issue.

                                  AspDotNetDev wrote:

                                  if (true)
                                  {

                                  I see unnecessary and confusing symbols here. For instance in Go, it would be something like:

                                  if true {

                                  Or (even better) in ML:

                                  if true then

                                  utf8-cpp

                                  K Offline
                                  K Offline
                                  Klaus Werner Konrad
                                  wrote on last edited by
                                  #63

                                  #define then {

                                  1 Reply Last reply
                                  0
                                  • T the Kris

                                    This can much shorter! Step1() && Step2() && Step3();

                                    K Offline
                                    K Offline
                                    KP Lee
                                    wrote on last edited by
                                    #64

                                    Yes, it can, but you want the process to complete each routine until it reaches a true condition, so your code has a bug in it (correct version): static void Main(string[] args) { bool s = !step1() && !step2() && !step3(); Console.Read(); } static bool step1() { Console.WriteLine("Step 1"); return false; } static bool step2() { Console.WriteLine("Step 2"); return true; } static bool step3() { Console.WriteLine("Step 3"); return false; }

                                    T 1 Reply Last reply
                                    0
                                    • K KP Lee

                                      Yes, it can, but you want the process to complete each routine until it reaches a true condition, so your code has a bug in it (correct version): static void Main(string[] args) { bool s = !step1() && !step2() && !step3(); Console.Read(); } static bool step1() { Console.WriteLine("Step 1"); return false; } static bool step2() { Console.WriteLine("Step 2"); return true; } static bool step3() { Console.WriteLine("Step 3"); return false; }

                                      T Offline
                                      T Offline
                                      the Kris
                                      wrote on last edited by
                                      #65

                                      Nope, 'cechode' wrote: General Re: Celebrity Deathmatch (VB.NET vs C#) Pin member cechode 23hrs 30mins ago i'm not a vb guy anymore but when i was i LOVED exit on first failed step. ( instead of nested if's ) BTW, I would use bool s = step1() || step2() || step3(); to execute until first true result.

                                      K 1 Reply Last reply
                                      0
                                      • N Nish Nishant

                                        VB.NET supports by-ref extension methods. As of 4.0, C# does not.

                                        Regards, Nish


                                        Are you addicted to CP? If so, check this out: The Code Project Forum Analyzer : Find out how much of a life you don't have! My technology blog: voidnish.wordpress.com

                                        K Offline
                                        K Offline
                                        KP Lee
                                        wrote on last edited by
                                        #66

                                        Nishant Sivakumar wrote:

                                        VB.NET supports by-ref extension methods. As of 4.0, C# does not.

                                        WHAT!!! I don't have 4.0 version. This continues to work in 3.5: void step1(ref int x)... Are you saying all legacy C# code that uses that convention is now broken in 4.0, or did I misunderstand what you said? One thing I do have to do in 3.5 is initialize the int variable's value being passed. (Unless I use out instead of ref.) Something is rather goofy in VB.NET, I can pass a referential object as a by val field if I want. (It, of course, remains by ref.)

                                        N 1 Reply Last reply
                                        0
                                        • A AspDotNetDev

                                          There hasn't been a good "why language X sucks and language Y is better" thread in a good while, so I thought I'd start one. Unlike most, however, this one has rules. I will post a reason C# is better than VB.NET and somebody reply with a reason VB.NET is better than C#. I (or somebody else) will then reply to that message stating another reason C# is better. And so on. Also, you must show code examples (when appropriate). I'll start. C# Is Less Verbose

                                          Public Sub Something()
                                          ' VB.NET...
                                          End Sub

                                          public void Something()
                                          {
                                          // C#...
                                          }

                                          You're turn (post why VB.NET is better than C#). :)

                                          [WikiLeaks Cablegate Cables]

                                          X Offline
                                          X Offline
                                          xympa
                                          wrote on last edited by
                                          #67

                                          in C#:

                                          i_can_do_this(); and_this(); //in the same line

                                          Because of the delimeter, sometimes it makes sense not to waste one line and make the code more readable, especially when assigning multiple variables in the same context. -- Turns out you can do it in VB with ":" check the reply bellow.

                                          modified on Tuesday, March 29, 2011 7:11 PM

                                          O K 2 Replies 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