Not really, but sometimes it can be assumed.
For example, if you have a VB.NET assembly containing anonymous types, the name generated by the compiler in the assembly will look something like this:
VB$AnonymousType_T<T0, T1>
Anonymous types in the C # assembly look like this:
<>f__AnonymousType0<....>
Different compilers will implement such things a little differently. The C ++ / CLI assembly tends to have many types in the assembly with "funny" names (for things like functions that relate to global scope, etc.).
Visual Basic Microsoft.VisualBase( .NET , 100%).