may implement separate interfaces. In VB you'd have to define two properties instead: a read-only property implementing one interface, and a write-only property implementing the other interface. Implicit interface implementation Can use the coalesce operator ?? to return the first non-null value (ex. null ?? null ?? 1 returns 1). VB.NET would have to use the If function with two parameters - e.g. If(Nothing, If(Nothing, 1)) returns 1. Pointers (in the unsafe context) Conditional operator ?: (someThingTrueOrFalse) ? whenTrue() : whenFalse();. VB.NET would have to use the If function with three parameters - i.e. If(someThingTrueOrFalse, whenTrue(), whenFalse()). Other characteristics of Visual Basic .NET not applicable to C# Conversion of Boolean value True to Integer may yield -1 or 1 depending on the conversion used Assigning and comparing variables uses the same token: =. Whereas C# has separate tokens, == for comparison and = to assign a value VB.NET identifiers are not case-sensitive. When assigning a value to a variable with a different data type (and with Option Strict not turned on), VB.NET will coerce the value if possible. This automatic coercion can sometimes lead to unexpected results, for example: Dim i As Integer = "1" 'Compiler automatically converts String to Integer Dim j As String = 1 'Compiler automatically converts Integer to String If i = j Then 'Compiler does cast and compare between i and j MsgBox("Avoid using, but this message will appear!") End If Although the default is for Option Strict to be off for backward compatibility reasons, it is recommended by Microsoft and widely considered to be good practice to turn Option Strict on, due to the fact that it increases application performance and reduces the possibility of naming errors and other programming mistakes. Val() function which also parses a null value while converting into double (In c# Convert.ToDouble() is used to convert any object into a double type value, but which throws an exception in the case of a null value) CInt, CStr, CByte, CDbl, CBool, CDate, CLng, CCur, CObj and a wide variety of conversion functions built into the language Other characteristics of C# not applicable to Visual Basic .NET By default, numeric operations are not checked. This results in slightly faster code, at the risk that numeric overflows will not be detected. However, the programmer can place arithmetic operations into a checked context to activate overflow checking. (It can be done in Visual Basic