VS 2005 - Generic Lists Of Unknown Type
Sep 14, 2009
I have recently moved from VB 2003 to VB 2005. While I am finding a lot of the new features quite useful, I am having trouble with List (of T). I want to be able to do something like this
Function GetList(MyObjectType as Type) as datatable
Dim list as new List(of MyObjectType)
End Function
Function GetList(MyObjectType as String) as datatable
Dim list as new List(of GetType(MyObjectType))
End Function
VB 2005 does not allow me to do this at all. Must the "type of" be srongly declared at all times? Can't this be done dynamically?
View 2 Replies
ADVERTISEMENT
Dec 14, 2011
I have a generic Class I'm using to hold information loaded from a database.I have a method which takes a DataRow as an argument, uses the object's known column name and extracts the data from the DataRow, such that:Dim loadData As T = CType(myDataRow("myColumnName"), T))works as my default assignment in most cases.Unfortunately, due to some horrifying design constraints, some of my columns may be null, and may also be taken from enumerations.This means that when <T> is Nullable(Of SomeEnumeration) the above code does not work because I can't cast 0 directly to SomeEnumeration.Zero.Is there some way to check whether <T> is Nullable(Of [Enum])? Or some way to write a method which allows Integers to be cast to Nullable(Of [Enum])?I feel like I'm forgetting something that would allow me to write one of the other of these, but my weak google-fu is turning up nothing.
EDIT: Okay, thanks to dasblinkenlight's answer below, I can detect when this circumstance is occurring, but what I need to do now is to take a type <T> which I know is Nullable(Of SomeClass), get a type reference to SomeClass and then create a new object of type Nullable(Of SomeClass) and assign that to LoadData.My problem was that I had a lot of difficulty in finding any function which would accept baseType as an actual Type.Parse accepted baseType as a parameter, I knew baseType was an [Enum] type because of dasblinkenlight's code, so I was, in this instance, able to code a solution. It's a solution which is very specific to my problem (i.e., T is Nullable(of SomeEnumeration)), but it's a solution nonetheless.
View 2 Replies
Mar 25, 2009
I have a piece of code that does an action to any collection that implements generic.IList<T>However to do this it needs to get the type <T> of the generic list.e.g. If I pass in a variable of type Generic.List(Form) then in my code I need to get the fact that the list is made of Forms. To add complexity the list may be empty (So you can't just look at Item(0).GetType)
View 6 Replies
Mar 2, 2011
I have a method where I'm taking a generic object and using TypeOf to check what has been passed through. Now I would like to pass it a List(Of T) (T being anything) and no matter what T is I'd like to do the same thing to this list. I tried the following:
public sub foo(ByVal obj As Object)
if TypeOf obj Is List(Of Object) Then
'do stuff
end if
end sub
but this doesn't seem to work if I pass it List(Of String), say. I suppose that List(Of Object) and List(Of String) are being treated as different objects, but I thought that since String is an object, the comparision might work.
Now I realise that this is as ugly as sin and I'm better off overloading the method to take List(Of T) as its parameter, but I'm mostly asking out of curiosity: is there a way of comparing the types List(Of Object1) and List(Of Object2) and getting a positive result, since they are both just List(Of T)?
View 3 Replies
May 6, 2009
I have a utility class that takes a generic list as a parameter.Code looks like:
Function DoStuff(collection as Object, elt as Object)
...
collection.Add(elt)
[code]....
View 3 Replies
Jul 9, 2010
I'm using VB.NET with .NET 2.0. I have two lists, and I want to compare the lists on a specific property in the object, not the object as a whole, and create a new list that contains objects that are in one list, but not the other.
myList1.Add(New Customer(1,"John","Doe")
myList1.Add(New Customer(2,"Jane","Doe")
myList2.Add(New Customer(1,"","")
Result in the above example would contain one customer, Jane Doe, because the identifier 2 wasn't in the second list.How can you compare these two List<T> or any IEnumerable<T> in .NET 2.0 (lacking LINQ)?
View 2 Replies
Feb 12, 2011
This code:
vb Dim s As String = strContents '<a global variable) Dim currentPos As Int64 = 0 Dim endPos As Int64 = strContents.Length - 1 '// A dictionary, used to count the frequencies Dim characterCounter As New Dictionary(Of [String], Int64)() While currentPos <> endPos '//
[CODE]...
Gives this error: Value of type 'System.Collections.Generic.KeyValuePair(Of String, Long)' cannot be converted to 'System.Collections.DictionaryEntry'.
View 2 Replies
Mar 8, 2010
I was developing a small function when trying to run an enumerator across a list and then carry out some action. (Below is an idea of what I was trying to do. When trying to remove I got a "Collection cannot be modified" which after I had actually woken up I realised that tempList must have just been assigned myLists reference rather than a copy of myLists. After that I tried to find a way to say
[Code]...
View 4 Replies
Apr 13, 2012
Consider:
Public MustInherit Class Column
Public ReadOnly Property ReturnSomethingUseful() As Object
Get
'return something useful
[code]....
But this gives the following error:
Public Overrides Function ParseValue(sValue As String) As Boolean'
cannot override 'Public Overridable Function ParseValue(sValue As String) As Object'
because they differ by their return types.
I accept that you can't do this, but I'd like to be able to preserve the semantics of what I'm. trying to do, which is to have an untyped version that deals with Object, but a typed version in derived classes that knows about the specific type T.
View 2 Replies
Aug 14, 2010
I have a Journal that records entries for different types: Journal(Of ParentT)
[Code]....
View 2 Replies
Jun 30, 2011
I am trying to create a list of a generic type in vb.net 2.0 framework.
This is the generic type definition:
Public Class GenericParamMap(Of T)
Public Sub New(ByVal pParamName As String, ByVal pPropValue As T)
mParamName = pParamName
[Code]....
The compiler does not allow a "T" in the method's parameter because it's not defined, but I'm not sure how or where to define it. I thought it was okay to have a generic method definition.
View 2 Replies
Feb 8, 2012
I am trying to write a generic method, to avoid code duplication, which will create or activate a Form as an MDI children, based on its type. But I have to lines in error (see comments).
[Code]...
View 4 Replies
May 5, 2009
I'm compiling a VB.Net 2.0 app (created in VS2008) using msbuild, and now I've added a generic return type, it's giving me the following:
Warning: Type library exporter encountered a generic type instance in a signature. Generic code may not be exported to COM.
Having just spent ages removing all of the previous warnings, I don't really want to add a new one. Any idea how to get rid of it (aside from not using generics)?I don't know what details I'd put in the attribute, or what number to put in the project-level ignore list.
View 1 Replies
Sep 12, 2011
I have a question about ASP.Net, visual basic I have 2 LINQ query's, the first one works, the second one doesnt, produces a
"Unable to cast object of type 'System.Data.Objects.ObjectQuery'1[SelmaV2.Products]' to type 'System.Collections.Generic.List'1[System.String]'.
[Code]....
View 1 Replies
Dec 19, 2011
I am trying to create a Sub that can take an object and add a load of event handlers for it, but the object can be any one of N types that all have these events. How can I do this? If I just have it as an Object as below AddHandler complains that the event does not exist for Object.
[Code]...
View 2 Replies
Jul 29, 2010
Rather than giving the very specific case (which I did earlier), let me give a general example. Let's say that I have a function, called callingFunction. It has one parameter, called parameter. Parameter is of an unknown type. Let us then say that I wish to copy this parameter, and return it as a new object. For example, in pseudo code, something along the lines of...
[Code]...
EDIT: Additional Information The first time I posted this question, I received only one response - I felt that perhaps I made the question too specific. I guess I will explain more, I have an ASP page with 10 tables on it. I am trying, using the VB code behind, to come up with a single solution to add new rows to any table. When the user clicks a button, a generic "add row" function should be called.
The difficulty lies in the fact that I have no guarantee of the contents of any table. A new row will have the same contents as the row above it, but given that there are 10 tables, 1 row could contain any number of objects - text boxes, check boxes, etc. So I want to create a generic object, make it of the same type as the row above it, then add it to a new cell, then to a new row, then to the table.
[Code]...
View 3 Replies
Feb 14, 2012
In trying to add a bit of usage variety to a generic class I'm working on, I ran into this issue with trying to cast an object into an interface instance where the interface is defined inside the generic class.
[Code]...
View 1 Replies
Mar 30, 2010
1) VB Allows non-type template parameters2) VB supports explicit specialization 3) VB allows the type parameters to be used as the base class for the generic type4) VB allows a generic type parameter itself to to be a generic 5) VB enforces that all codes are valid for all types of parametrs
View 1 Replies
Jun 6, 2012
I have problem in my application when updating 3 items otherwise it is as good as work. The problem is when updating the username to the access database an error showing that "Datatype mismatch" when updating the date and time field an error occurs and tells that the "Unknown field type". This is my code where bold faced lines have errors:
Dim objCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand()
objCmd.Connection = con.con
'Make a command to insert data
[Code].....
View 3 Replies
May 18, 2011
I'm trying to create a generic function to build a Linq expression from a list of Telerik grid filters. I'm trying to stay clear of dynamic Linq. Because I don't know the type that I'm building the expression for, I'm attempting to use reflection in the lambda functions to refer to a property, but after applying the fix suggested by @JaredPar I get the error, "The LINQ expression node type 'Invoke' is not supported in LINQ to Entities." Is there any way around this? here is my code:
Public Shared Function buildRadFilter(Of T)(ByVal filterExpression As List(Of GridFilterExpression)) As Expressions.Expression(Of Func(Of T, Boolean))
Dim returnPred = PredicateBuilder.True(Of T)()
[Code]....
View 1 Replies
Sep 21, 2011
I have a code below to make collection that bind to a gridview able to sort by clicking on the column header. The problem here is "IPerson" is unknown at compile time. I want the delegate type able to decide by getting from gridview datasource.[code]....
View 1 Replies
Aug 16, 2011
I have written a function to generate a random string with specified length. In that I have used 'Random' function. when I have executed it, it is throwing an unhandled exception.Please suggest me some solution. Below is the code I have used:
[code]...
View 3 Replies
May 10, 2011
I have recently updated a legacy compact framework application to support Windows Mobile 6.5 but after going through my backwards compatability testing I have an issue with the WinCE 5 device.When attempting to run the application from both the EXE and the debugger I get the "An unhandled exception of type 'System.TypeLoadException' occurred in Unknown Module." exception but its not giving me any idea which dll / type it has issue with.The changes do work on the Windows Mobile 6.5 Motorola device and the Pocket PC 2003 Psion Device but not on the WinCE5 Psion device.Does anyone have any ideas how I can find out which reference is causing me the issue. I have tried removing the new references to the Symbol barcoding and imaging libraries but I am still getting the same error.OK, it looks like the .Net Compact Framework installation had corrupted some how. I flattened the device, reinstalled and everything appears to be working.
View 2 Replies
Sep 23, 2010
I'm trying to check if a LINQ Entity exists in its table, but at design time I dont know what type that entity is. So I figure I'll just get the table, and try the Contains method on it. But I cant get the table in such a way that I can query it at design time.I've tried the GetTable method on the datacontext, but I dont know how to cast it to the appropriate type when using GetTable(Of). GetTable(Type) works, I just use Entity.GetType(), but then I don't know how to query the ITable thats returned.To try and cast the ITable to something useable, I created an interface(IWhatever) that could implement properties that are native to all of my entities I would encounter. [code]
View 2 Replies
Mar 2, 2010
Ever since I started using VB.Net I have been using the Generic List collection List(Of <Type>). Arrays, I haven't used so much. I used them a lot more when I wrote C code years ago.
1.) Are arrays considered a type of collection like Lists, Dictionary, Queue etc are? Or are they in their own category.
2.) Can I iterate over an array with a For Each loop like I can with other collections or do I stick with the normal For loop for arrays?
3.) There are certain methods that return arrays. Can I set a list object to hold this return value instead of an array?
View 6 Replies
Aug 19, 2010
program supost to control (projector - done..., webcam - idk how do i read FPS of the camera ..., arduino - will take me 5 min...)
here is the code of form1:
[code]...
it chrashes here is the error : An unhandled exception of type 'System.StackOverflowException' occurred in Unknown Module.
View 5 Replies
Sep 8, 2009
System.ExecutionEngineException was unhandled Message: An unhandled exception of type 'System.ExecutionEngineException' occurred in Unknown Module.There are no further details and the stack trace window is blank I was just wondering how it would be best to work out where this error message is happening - i really don't want to put a million debug.prints in there to work out what functions were last called etc.
View 2 Replies
Sep 6, 2011
My program reads a 3rd party data text file and I give the user the ability to add a row. The problem I am having is one users text file contains an extra tab at the end of each datarow thereby creating an extra column when i view it in DataGridView it gets labled "NoName"
Moving foward I get the following error upon trying to isnert a new datarow. The INSERT INTO statement contains the following unknown field name: 'NoName'. Make sure you have typed the name correctly, and try the operation again.
[Code]...
View 2 Replies
Sep 23, 2010
I have a program which use an API. One of the functions of this API has threading.Once I start this function. It will continue reading data and once the data is found, it will pass me the data to a function let's say functionnd I call a delegate functionB from this functionA.And at some point this functionB throw me an error of "Collection was modified; enumeration operation might not execute.".Does anyone know what this mean?I google it and found that this error was caused by "For Each or For" loop.But in my program I don't have any for loop.
VB.Net
Public Sub ReadTag(ByVal sender As Object, ByVal e As TagReadDataEventArgs)
Try
[code].....
View 2 Replies
Oct 22, 2009
Using Access 2003 and VB code, I have created a form with a number of labels. The labels will display an employee's names. I have named the labels name1, name2, name3...etc. Using an ADO data set and DCount I have determined the number of names in an Access table (the number of names can vary). What I want to do is for each record in succession to pick the first name and surname from the data set , combine them into a full name (this part has been successful), and then set the full name into the label caption in succession. Example: full name 1 into name1, full name 2 into name2, full name 3 into name3... until all names appear as labels on the form.
I created a counter to and a variable to increment the label number but when I address the caption property of the variable containing the new label (e.g. name1, name2..etc.) it throws an errer at runtime. Here is the code:
[Code]....
View 8 Replies