I’m developing a vb.net program with VS2008. In my case, dt_list is a instance member as List(of Single). When I wrote
dt_list = CType(ser2.Deserialize(r), dt_list.GetType())
VS2008 complains about “Type ‘dt_list.GetType()’ is not defined.”.
Why? Thanks in advance.
The reason this is not allowed is that the exact value of the type for
GetType()must be determined at runtime. The second parameter of CType can only be an “expression that is legal within an As clause in a Dim statement, that is, the name of any data type, object, structure, class, or interface”, for instance,List(Of String), which can be determined at compile time.The following is accordingly legal:
EDIT:
Casting to an arbitrary type, where the type is not known at compile time, is more involved, however. The proposed answer to this question in the MSDN Forums shows one approach. Though it’s in C#, I will guess the same approach can be used in VB.NET as well.