We all know that in C # it doesn't matter whether you use the String(CLR class) or String(the C # keyword). See the following question for more details:
So far, I have the impression that the same is true for VB.NET. the language specification even says (emphasis mine):
Primitive types are identified using keywords that are aliases for predefined types in the System namespace. The primitive type is completely indistinguishable from the type that it pseudonizes: the entry of the reserved word Byte exactly matches the spelling of System.Byte.
Thus, I was very surprised to see that Visual Studio 2015 matters: Visual Studio allows you to specify your preferences (Tools / Options / Text Editor / Basic / Code Style) of the Framework names (Int32 / Int64 / DateTime / ...) over VB native keywords (Integer / Long / Date / ...).
The thing is: after you tell Visual Studio that you prefer Framework names, the automatically generated code uses [String](using the []VB keyword escape code similar to C # @) instead of String(the same for Object, Single, and all other types, where the VB keyword matches the name of the Framework type). I think this is wrong (and filed the Connect issue ), because the parentheses are cluttering up the code, and as shown above, it does not make semantic difference whether you use [String](effectively referring to System.Stringdue to the automatic import of VB System) or String(the alias of VB aliasing System.String)
, Visual Studio , , - [String], String, :
- [String] String Visual Basic Visual Studio " " ?