Differences between VB.Net and C#, related to OOPS concepts

Answers were Sorted based on User's Feedback



Differences between VB.Net and C#, related to OOPS concepts..

Answer / k l baiju

c# is faster than vb.net
C# can access unmanaged code in the background
c# has more functionality

Is This Answer Correct ?    29 Yes 23 No

Differences between VB.Net and C#, related to OOPS concepts..

Answer / ajay bharti

VB.NET & C# both have same execution speed no difference in
terms of speed.

But there are some other differrence between them:-

1- C# uses function pointers, VB.Net does not.
2- we can do operator overloading in C#, but not in VB.Net.
3- VB.Net uses WITH KEYWORD, C# does not have WITH Keyword
(Example:- WITH datagrid
.datasource=ds
.databind()
END WITH)
4- C# is case senstive language, but VB.Net is not.
5- C# is fully object oriented language it implements all
the concepts of OOPs. But VB.net is not fully OO language
because some of the OOPs features like operator loading it
does not have.

Is This Answer Correct ?    9 Yes 5 No

Differences between VB.Net and C#, related to OOPS concepts..

Answer / joel of mmcc

Correcting some minor misinformation in prior answers:

1. As has already been stated, all .NET languages compile to MSIL, so given the same basic code structure, there is no difference in execution speed. Of course, either language may have features that encourage more or less efficient coding structures in certain circumstances, but the compiler optimizers usually catch many of these and optimize them accordingly.

2. VB.NET can indeed do operator overloading with the Operator statement (this may have been added to newer versions such as VS2005 since the previous answers were posted).

3. C++.NET can do true multiple inheritance (MI), but C# cannot. Indeed, C++ mainly does so with MFC, a pre-.NET unmanaged-code technology. The .NET Framework is designed not to need MI. In all .NET languages including VB.NET, the concept of Interfaces allows a limited form of an MI-like concept. A single Class can Implement multiple Interfaces, but Derive from only one parent Class. It can even do both in the same Class — again, regardless of language.

4. In more modern versions of both languages (C# 2.0 & 3.0, VB.NET 9+), LINQ and many supporting technologies to enable and empower LINQ were added. These are very powerful in their own right as well as enabling the power of LINQ, and C# does indeed currently have an advantage here: lambdas are implemented much better in C# than in VB.NET (they can be multiline in C#, one expression only in VB.NET, and C# allows void-function [C-type language equivalent of Subs, namely, doesn’t return a value] lambdas while the current VB.NET 9 still doesn’t allow lambda Subs, only single-expression single-return-value Functions), C# allows Automatic Properties (a very powerful code saver, but useless for technlogies such as WPF that extend the concept of properties [e.g. WPF Dependency Properties]) while VB.NET doesn’t yet (but will in .VB.NET 10 / VS2010 / NET Framework 4.0). Code Snippets mitigate the Automatic Properties thing anyway. Both have Extension Methods, Anonymous Types, etc.

Some items not directly related to OOPS but often missed in discussions like this:

1. C# (like other C-derived languages) has post/pre inc/decrementer operators (++, --), plus operate-and-assign operators (e.g. +=), bitwise shifts (<<, >>), short-circuiting logical operators, the ternary operator (?:), etc. While not widely known among those not familiar with it, VB.NET in its latest versions does currently have all of those except the post/pre inc/decrementers. Much of their functionality can be done with += or -= ("myCounter += 1" isn't that much harder to type nor convoluted than "myCounter++", but of course the latter does have the powerful advantage of being usable in expressions).

2. The VB.NET version of the ternary operator (introduced in VB.NET 8 or 9, IIRC) looks like a function, but is not: If(booleanExpression, trueValue, falseValue) -- this is not to be confused with the actual IIf(,,) function available all along which looks similar but is not short-circuited and is a function, not an operator.

3. VB.NET now provides nullable value types, simply by putting a question mark after the Type ("Dim discount As Decimal?"). Nullables have a ".HasValue" Boolean property, and a read-only ".Value" property. A two-operand overload of the If() function-like operator allows for providing a default value in case of a Null (Nothing in VB.NET), similar to the ISNULL function in T-SQL or a two-operand COALESCE function in ANSI standard SQL:

salePrice -= If(discount, 0@) ' If the discount amount is Nothing (null), treat it as 0, avoiding a Null Value runtime error.

Longer equivalent using ternary variant of If() operator:

salePrice -= If(discount.HasValue, discount.Value, 0@)

4. Dates and times are standard VB.NET types that have existed since way back when in VB. C# still doesn’t have them, and must resort to .NET classes. This means that you can have date and datetime literals in VB (simply delimited with “#”), while you have to parse a string or provide int parameters to initialize a Date or DateTime even to a known constant value in C#. While the C# optimizer may be smart enough to handle such circumstances, if it didn’t, this is one obvious example of when VB.NET would produce faster code.

Const santaDue As Date = #12/24/2009 12:59:59 PM# ' compiles right to an actual datetime literal constant! No run-time hit!

vs.

DateTime santaDue = DateTime.Parse("12/24/2009 12:59:59 PM"); // string literal has to be parsed and converted — inefficient!

DateTime santaDue = new DateTime(12, 24, 2009, 23, 59, 59); // somewhat more efficient (no string literal to parse, but int literals have to be stuffed into date/time parts at run time), yet still not a pre-compiled literal constant. Not as intuitive to read, either.

I’d be interested to know if the C# optimizer can recognize such initializations using string or integer constants and optimize them.

Is This Answer Correct ?    2 Yes 2 No

Differences between VB.Net and C#, related to OOPS concepts..

Answer / vinod

vb.net is partially oops,were c# is full oops ...
multiple multilevel is not possible in vb.net...in c# its
available.

Is This Answer Correct ?    16 Yes 23 No

Differences between VB.Net and C#, related to OOPS concepts..

Answer / satish v itagi

Multiple Inheritance is not possible in VB.NET, you have to
use Interface to achieve this.

In C# multiple inheritance is available.

As every code is compiled to byte code in MSIL, it does not
make a difference is execution speed.

OOPs is added to VB.NET, whereas C# has it as part of it.

VB.NET is easy to learn, C# is easy to write !! choice is
yours!

Is This Answer Correct ?    7 Yes 22 No

Post New Answer

More ASP.NET Interview Questions

What events will occur when a page is loaded?

0 Answers  


What are client activated objects and server activated objects?

0 Answers  


How can we prevent browser from caching an aspx page?

0 Answers  


How does asp.net work?

0 Answers  


Hi..I have created a website in Asp.net with C# i want to add Chinese language in my website..could any body tell me that how can i add dynamically this language on user's request...??? thanks n advance...

1 Answers  






Does the following statement executes successfully: Response.Write(?value of i = ? + i);

4 Answers   TCS,


What is the difference between repeater over datalist and datagrid ?

1 Answers  


What type of code (server or client) is found in a Code-Behind class?

3 Answers   Siebel Systems,


How many no of classes in .net

4 Answers  


version information of assembly consist of _________ values.

3 Answers   AG Technologies,


what is webpart? what r the parts in this webpart (zone)

2 Answers  


when i want to use asp.net configuration for creat users and roles i recived this message: There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store. The following message may help in diagnosing the problem: Unable to connect to SQL Server database. when i clicked the choose data source button that give me another message that is this: Use this page to configure how Web site management data such as membership is stored. You can use a single provider for all the management data for your site or you can specify a different provider for each feature. Your application is currently configured to use the provider: AspNetSqlProvider Select a single provider for all site management data Select a different provider for each feature (advanced) ------------------------- and this message was reapeted in other choose again. please help me if u know why i gave that message so i wont can creat my users and roles

0 Answers  


Categories