Celebrity Deathmatch (VB.NET vs C#)
-
Fixed, thanks.
Doesn't look fixed to me. Methinks you need to get the permalink from whatever message you are linking to.
-
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
Nemanja Trifunovic wrote:
AspDotNetDev wrote:
if (true)
{If I had my way (and I don't), the braces would be mandatory and the parentheses would be optional.
-
AspDotNetDev wrote:
It is faster to read "{}" than "Then End If",
Kind of.
End If
closes the block afterIf
and that's it. To get what}
does you need to be aware of the scope - sometimes even to scroll up a couple of pages. Sure, a good editor helps, but as far as a language goes I likeEnd If
better.See what happens when you remove all the newlines. Readable?
-
Doesn't look fixed to me. Methinks you need to get the permalink from whatever message you are linking to.
My post "Here's something else VB can't do".
-
My post "Here's something else VB can't do".
-
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 Subpublic void Something()
{
// C#...
}You're turn (post why VB.NET is better than C#). :)
VB is better because I use it more often, and have more experience with it than C#. Do I get points for honesty?
-
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 Subpublic void Something()
{
// C#...
}You're turn (post why VB.NET is better than C#). :)
AspDotNetDev wrote:
You're turn
Am I? ;P
-
That's pretty neat! But you can actually get pretty close to that in C#:
var steps = new List<Func<bool>> { Step1, Step2, Step3 };
foreach (var step in steps)
{
if (!step()) break;
}And if you create this helper function:
void DoEach(params Func<bool>[] steps)
{
foreach (var step in steps)
{
if (!step()) break;
}
}You can shorten that code even further:
DoEach(new Func<bool>[] {
Step1,
Step2,
Step3
});Got to love delegate inference! Not sure, but I think there's something in LINQ that does something like this as well. Can't be bothered to try and find it now though.
-
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
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.
-
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#.
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.
-
AspDotNetDev wrote:
You're turn
Am I? ;P
-
AspDotNetDev wrote:
You're turn
Am I? ;P
-
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 SelectRegards, 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
In C# you can use fall through cases for that in C#.
-
AspDotNetDev wrote:
You're turn
Am I? ;P
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.
-
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 Subpublic void Something()
{
// C#...
}You're turn (post why VB.NET is better than C#). :)
-
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 Subpublic void Something()
{
// C#...
}You're turn (post why VB.NET is better than C#). :)
-
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.
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#).
-
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#.
He said post something that makes it better just kidding. Humble Programmer
-
True, but it can only be used with a boolean value. The others can work with non-boolean values.
-
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.
Yeah, that is nice.