473,614 Members | 2,042 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

C# vs VB

Any good resources regarding benefitis by using C3 over VB?

/Andy
Nov 17 '05
28 2434
> IsNumeric etc.
==========
You have many functions like IsNumeric, Mid etc. in VB.net which are
handy.
You have to write separate function in C# for using the above. Allright
you
people must be thinking that using these functions are not PURE (in terms
of
.Net) , these are very very handy.


If i'm not mistaken, these are implemented in something like
"Microsoft.Visu alBasic.dll"-- a library that could be imported into _any_
..net project, including c#.

scott
Nov 17 '05 #21
> Taking into consoderation intellisense and auto title case, you will have
to
PRESS 17 KEYS ....

Um. This has nothing to do with the VB.Net language, but with the version of
Microsoft Visual Studio.Net that you happen to be using. You might want to
take a look at VS.Net 2005 and update your impression.

In fact, the syntax for C# is much more compact than VB.Net. So, it might be
said that, comparing apples to apples, you type less with C#.
IsNumeric etc.
==========
You have many functions like IsNumeric, Mid etc. in VB.net which are
handy.
This also has nothing to do with the VB.Net language. These functions are in
an assembly which can be used with either language. The VS.Net IDE simply
references it automatically when creating a VB.Net project, so that people
like yourself can use what they are familiar with, without having to know
anything about it, or understand where it comes from.
Optional Parameters
=============
VB.net supports optional parameters, but C# does not support them.
Although
people might argue that you can use overloaded functions instead, these is
one catch to it. Say for example the function a hundred lines of code and
the
optional parameter is just going to be used for checking in an if
condition
(most optional parameters are used for that). In C# you have to do this by
overloading the function and in that process paste the hundred lines of
code
again. What a waste... ?
Apparently, you haven't written overloaded functions before (even though
VB.Net allows you to), or simply don't know how to do it. Consider the
following:

public static int IndexOfEnd(stri ng source, string searchString, int
startIndex)
{
int i = source.IndexOf( searchString, startIndex);
if (i < 0) return i;
return i + searchString.Le ngth;
}

public static int IndexOfEnd(stri ng source, string searchString)
{
return IndexOfEnd(sour ce, searchString, 0);
}

Note that none of the code in the first definition is duplicated in the
second. The second simply calls the first, and passes a (default) third
parameter to it.

In fact, optional parameters are an illusion. The parameters are there; they
are simply given default values when they are not explicitly declared in the
method call. The above could be defined with optional parameters in VB:

Public Function IndexOfEnd(ByVa l source As String, _
ByVal searchString As String, Optional ByVal startIndex As Integer = 0)
Dim i As Integer = source.IndexOf( searchString, startIndex)
If i < 0 Then Return i
Return i + searchString.Le ngth
End Function

The VB function actually *always* takes 3 parameters. The compiler supplies
the third if the developer leaves it out.

As to the reasoning behind the decision not to support optional parameters
in C#, see the following article:

http://blogs.msdn.com/csharpfaq/arch.../07/85556.aspx

There are some very sharp people who write in defense of VB.Net. It is a
fine .Net programming language. But this sort of argument only adds to the
widely-held impression held by many that VB is a bad language because it
fosters ignorance on the part of the developer, and leads to a large segment
of ignorant and unskilled VB developers.

Personally, I do believe that there are more VB hacks out there than C#
hacks. Until the current version of the .Net Framework and Visual
Studio.Net, this has been made possible by the lack of strictness in the
language, and Microsoft's accomodations to the VB programming community, to
make it easier for VB developers to transition to the .Net Framework. In
other words, it has been easier to write bad code in VB.Net than in C#, and
it's easier to write bad code than it is to write good code. Lazy people
tend to take the easiest path, test less, and worry about the consequences
later. This should not be taken as a sweeping generalization, or a criticism
of the language or the VB.Net community, but as a statistical theory, which
may be useful in the future development of the language.

However, in fact, there are many top-notch VB developers out there. They use
VB because they like the syntax, and either have no need for the extra
capabilities of C#, or use C# when they need to (which isn't often).
Personal preference and comfort is a perfectly valid reason for using any
language.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
A watched clock never boils.

"Maruthi" <Ma*****@discus sions.microsoft .com> wrote in message
news:21******** *************** ***********@mic rosoft.com... VB.net is best fit for the following reasons:

1) You have to type less. Consider the following statements to declare a
SqlConnection

VB.net
=====
Dim mycon As New SqlConnection

Taking into consoderation intellisense and auto title case, you will have
to
PRESS 17 KEYS

C#
==
SqlConnection mycon = new SqlConnection() ;

You have to press 26 + 2 (capital letter) = 28 keys even by using
intellisense.

And the most irritating this is, you have to remember the object name
SqlConnection (consider this for other objects whose name you might not
remember)

IsNumeric etc.
==========
You have many functions like IsNumeric, Mid etc. in VB.net which are
handy.
You have to write separate function in C# for using the above. Allright
you
people must be thinking that using these functions are not PURE (in terms
of
.Net) , these are very very handy.

Optional Parameters
=============
VB.net supports optional parameters, but C# does not support them.
Although
people might argue that you can use overloaded functions instead, these is
one catch to it. Say for example the function a hundred lines of code and
the
optional parameter is just going to be used for checking in an if
condition
(most optional parameters are used for that). In C# you have to do this by
overloading the function and in that process paste the hundred lines of
code
again. What a waste... ?

=======
Regards,
Maruthi
=======

"Andy" wrote:
Any good resources regarding benefitis by using C3 over VB?

/Andy

Nov 17 '05 #22
Not sure if I saw this one addressed:

"Maruthi" <Ma*****@discus sions.microsoft .com> wrote in message
news:21******** *************** ***********@mic rosoft.com...
...
C#
==
SqlConnection mycon = new SqlConnection() ;

...
And the most irritating this is, you have to remember the object name
SqlConnection (consider this for other objects whose name you might not
remember)

Actually, as long as you remember the namespace SqlConnection is in, you can
get intellisense to give you a list of class names in that namespace, so you
don't really have to remember that. It is a bit of extra typing to put the
namespace first, but from my POV, typing a few extra chars just isn't an
issue. I spend a lot more of my programming time thinking than typing.

You know what? I think most of use like our "home" language best. I like C#
because it feels closer to the plain ol' K&R C I was raised on. I wouldn't
presume to know enough about VB to give empirical reasons to like one or the
other better. I just like the way it feels, and that's enough for me :-)
Nov 17 '05 #23
I'm not sure if i'm adding or taking away fuel from the fire.

In both languages (i started in vb and switched to cs), I find typing the
property definitions a pain, whether its

Public Property SomeProp() As String
Get
Return _someProp
End Get
Set(ByVal Value As String)
_someProp = Value
End Set
End Property

or

public string SomeProp {
get { return _someProp; }
set { _someProp = value; }
}

both end up to be a lot of typing. and although i prefer c#, i still think
there's something fishy about the implicit variable 'value' in properties...

scott

"Rachel Suddeth" <ra****@bldhoun d.com> wrote in message
news:u3******** ******@tk2msftn gp13.phx.gbl...
Not sure if I saw this one addressed:

"Maruthi" <Ma*****@discus sions.microsoft .com> wrote in message
news:21******** *************** ***********@mic rosoft.com...
...
C#
==
SqlConnection mycon = new SqlConnection() ;

...
And the most irritating this is, you have to remember the object name
SqlConnection (consider this for other objects whose name you might not
remember)

Actually, as long as you remember the namespace SqlConnection is in, you
can
get intellisense to give you a list of class names in that namespace, so
you
don't really have to remember that. It is a bit of extra typing to put the
namespace first, but from my POV, typing a few extra chars just isn't an
issue. I spend a lot more of my programming time thinking than typing.

You know what? I think most of use like our "home" language best. I like
C#
because it feels closer to the plain ol' K&R C I was raised on. I wouldn't
presume to know enough about VB to give empirical reasons to like one or
the
other better. I just like the way it feels, and that's enough for me :-)

Nov 17 '05 #24
Maruthi <Ma*****@discus sions.microsoft .com> wrote:
VB.net is best fit for the following reasons:

1) You have to type less. Consider the following statements to declare a
SqlConnection
LOL. How much of software development time is actually spent in typing,
would you say? Writing readable code is far more important. Do you
recommend always using single letter variable names and avoiding
writing comments, too?
IsNumeric etc.
==========
You have many functions like IsNumeric, Mid etc. in VB.net which are handy.
They're not object oriented, and I've had nasty experiences in terms of
their behaviour when it comes to different cultures (in particular
changing the culture of a thread doesn't affect *all* VB.NET functions,
even if some of them are affected by the culture of the thread which
*first* calls them. Very odd stuff).
You have to write separate function in C# for using the above.
Not for "Mid" you don't - what's wrong with Substring? (Admittedly
Substring throws an exception if you ask for data outside its range -
which I believe is almost always a better behaviour than silently
returning less data than you asked for.)

If you really want to use them from C# though, you can do so.
Optional Parameters
=============
VB.net supports optional parameters, but C# does not support them. Although
people might argue that you can use overloaded functions instead, these is
one catch to it. Say for example the function a hundred lines of code and the
optional parameter is just going to be used for checking in an if condition
(most optional parameters are used for that). In C# you have to do this by
overloading the function and in that process paste the hundred lines of code
again. What a waste... ?


You seem to be unaware of the possibility of calling one method from
another. You wouldn't paste the hundred lines of code. You'd write:

void SomeMethod()
{
SomeMethod(defa ultValue); // Whatever the default value is
}

void SomeMethod (int parameter)
{
// 100 lines of code here
}

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #25
"Jon Skeet [C# MVP]" <sk***@pobox.co m> wrote in message
news:MP******** *************** @msnews.microso ft.com...> void SomeMethod()
{
SomeMethod(defa ultValue); // Whatever the default value is
}

void SomeMethod (int parameter)
{
// 100 lines of code here
}


I'm surprised at you, Jon. I thought a single method with a 100 lines was
bad form?

Scott
Nov 17 '05 #26
Scott Coonce wrote:
"Jon Skeet [C# MVP]" <sk***@pobox.co m> wrote in message
news:MP******** *************** @msnews.microso ft.com...> void SomeMethod()
{
SomeMethod(defa ultValue); // Whatever the default value is
}

void SomeMethod (int parameter)
{
// 100 lines of code here
}


I'm surprised at you, Jon. I thought a single method with a 100 lines was
bad form?


Usually, yes - although there are exceptions to the rule.

However, one method with 100 lines is better than two methods with 100
lines which are almost duplicates of each other :)

Jon

Nov 17 '05 #27
why is it bad form? I'm currently stearing at a method i wrote the has 500
lines. I'll add that these are 500 compact lines of code. Where is the bad
form? You can't simply generalize about software development especially if
you write code that interfaces with other pieces of software that require
certain lengthy initializations .

--
Regards,
Alvin Bruney [MVP ASP.NET]

[Shameless Author plug]
The Microsoft Office Web Components Black Book with .NET
Now Available @ www.lulu.com/owc
Forth-coming VSTO.NET - Wrox/Wiley 2006
-------------------------------------------------------

"Scott Coonce" <sd******@gmail .HEY_YOU.com> wrote in message
news:uP******** ******@TK2MSFTN GP11.phx.gbl...
"Jon Skeet [C# MVP]" <sk***@pobox.co m> wrote in message
news:MP******** *************** @msnews.microso ft.com...> void SomeMethod()
{
SomeMethod(defa ultValue); // Whatever the default value is
}

void SomeMethod (int parameter)
{
// 100 lines of code here
}


I'm surprised at you, Jon. I thought a single method with a 100 lines was
bad form?

Scott

Nov 17 '05 #28
<"Alvin Bruney - ASP.NET MVP" <www.lulu.com/owc>> wrote:
why is it bad form? I'm currently stearing at a method i wrote the has 500
lines. I'll add that these are 500 compact lines of code. Where is the bad
form? You can't simply generalize about software development especially if
you write code that interfaces with other pieces of software that require
certain lengthy initializations .


That length initialization can usually be broken up into smaller
methods, each of which is more easily understood, and more easily
tested. I often write a method which does nothing but call three or
four other methods in turn. That means when I need an overview of what
it does, I can just look at the names of the methods. When I need to
check the detail of a specific bit, I can skip straight to that method,
without looking at the intervening bits.

I rarely have a method which is more than about a page.

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #29

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
11202
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL) on the server because of that. Our site will have an SSL certificate next week, so I would like to use AIM instead of SIM, however, I don't know how to send data via POST over https and recieve data from the Authorize.net server over an https...
2
5799
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues to execute the code until the browser send his reply to the header instruction. So an exit(); after each redirection won't hurt at all
3
22991
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which field is completed.
0
8458
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. 354 roberto@ausone:Build/php-4.3.2> ldd /opt/php4/bin/php libsablot.so.0 => /usr/local/lib/libsablot.so.0 libstdc++.so.5 => /usr/local/lib/libstdc++.so.5 libm.so.1 => /usr/lib/libm.so.1
1
8561
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the column below. The viewer can select states from the drop down lists above the other two columns as well. If the viewer selects only one, only one column fills. If the viewer selects two states, two columns fill. Etc. I could, if appropriate, have...
4
18249
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the user comes back to a page where he had a submitted POST data the browser keeps telling that the data has expired and asks if repost. How to avoid that? I tried registering all POST and GET vars as SESSION vars but
1
6808
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url http://www.mis.gla.ac.uk/biquery/training/ but each of the courses held have maximum of 8 people that could be
2
31381
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value to :parameter I dont like the idea of making the SQL statement on the fly without binding parameters as I dont want a highly polluted SQL cache.
3
23556
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the results of the picture half the size. The PHP I have installed support 1.62 or higher. And all I would like to do is take and image and make it fit a 3x3. Any suggestions to where I should read or look would be appreciated.
0
8182
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8130
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8625
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8578
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8279
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8433
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7092
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6088
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5538
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.