In VB.NET, it is entirely possible to pass an integer as a string parameter to a method without calling .ToString()
- it's even possible to call .ToString
without the ()'s. The code will run without a problem, VB will interpret the integer as a string without having been told to.
In C#, these would cause compilation errors - you are required to call .ToString()
and to call it correctly in that situation before it will compile.
Is there a way to make the VB compilation process check for the same things as the C# compilation process? Would it be best practice in a mixed team to force this check?
There are several compiler options you can switch on, Option Strict will do most of what you want i.e. will not allow you to pass an integer for a string.
You set it on the Compile tab for your projects settings, or you can just put Option Strict On
at the top of a class/module file.
However things like being able to call o.ToString
instead of o.ToString()
are part of the language semantics, you can't do anything about that.
If you REALLY want something that compiles just like C#, then you have to use C#.
Sorry :(
Hope this helps
Make sure you have
Option Strict On
Option Explicit On
Option Infer On
in your project settings.
Other than that, not much can be done. VB.NET is a different language and has different kind of restrictions from C#. If you want to make it exactly like C#, why wouldn't you simply switch to C#?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With