Numeric Type Only Generics?
Jan 20, 2011
Suppose I have an interface called IParseable(Of TParsed, TUnparsed) which requires two functions:[code]Is there a way that I can restrict TParsed and TUnparsed to be numeric types (for which operations like "*" and "+" are already defined)?The problem is that, when I try to implement my interface and define one of the functions, e.g.:[code]VS throws an error saying the "*" is not defined for TUnparsed. I understand that, since TUnparsed could be anything, but is there a way to restrict my generic such that, say, TUnparsed could only be Double, Integer, Long, etc? To require Control to be a TextBox (or maybe I don't understand that very well either). But, anyway, any idea or am I way off track? Just trying to get a hang of these interface thingies and generic types.
View 2 Replies
ADVERTISEMENT
Mar 1, 2012
I've spent quite a bit of time reading up on generics, covariance, etc., and I am failing to understand why I get the aforementioned compiler error in this type of codeLet's say I have a base "Bill" class made up of a collection of Lines..
Public Class Bill(Of L As Line)
Private _lines As List(Of L)
Public Property Lines() As List(Of L)
[code].....
View 11 Replies
Apr 6, 2012
In the following code,
For Each item in MyCollection
...
Next
What does the compiler use to determine the type of item?For example let say I have this class, which is inheriting a non generic collection,
Public Class BaseDataObjectGenericCollection(Of T)
Inherits BaseDataObjectCollection
End Class
A for each loop still infers the Item type as Object. How would I have to modify the above class to make the type inference work?
Edit: Per Beatles1692's answer, Implementing IEnumerator(Of T) kinda works. The base class already has a GetEnumerator function, inherited from CollectionBase, so I my implementation looked like this,
Public Function GetEnumerator1() As System.Collections.Generic.IEnumerator(Of T) Implements System.Collections.Generic.IEnumerable(Of T).GetEnumerator
Return MyBase.Cast(Of T)().GetEnumerator
End Function
However, the for loop still infers the type as object. But, if I change the interface implementation to this,
Public Shadows Function GetEnumerator() As System.Collections.Generic.IEnumerator(Of T) Implements System.Collections.Generic.IEnumerable(Of T).GetEnumerator
Return MyBase.Cast(Of T)().GetEnumerator
End Function
That works, the for loop gets the type inference correct. So I guess the question is now, does For Each just look for a function called GetEnumerator ?
View 3 Replies
Mar 21, 2010
Ok, this looks junky to me and I tried a lot of approaches; Generics won't allow me to cast the types on the fly and use MemberwiseClone() because it is 'Protected'.
Does anyone know a "short form" of doing this? I tried CType by Object.GetType on the fly; but the IDE cannot resolve the MemberwiseClone().
Private lastObj as Object = Nothing
Public Function IsObjectedDifferent(CurrentObject as Object) as Boolean
If CurrentObject Is Nothing Then Return False
[Code]....
I am trying to make a generalized function to handle if the Object is Changed; or If the values are different.
This seems like way too much code for such a simple task to me, and I have a lot of classes to compare; is there away to get the class defination dynamically so that the CType function will handle it?
View 8 Replies
Dec 7, 2009
I have a class called results which amongst other things has 3 internal Lists which contain 0 to n result objects each. One list has results whose answer property is integer,the next is Decimal and the last text. I many common properties like ID and I have a property on the Results class called Result which looks like this: -
Public ReadOnly Property Result(Index) As Object
Get
Select Case ResultTypeID
[code]....
View 2 Replies
Jun 23, 2009
The idea is to expand on the existing, old, and lacking Inputbox, to allow for:1. A greater variety of types (Integers, doubles, List(Of String), etc.2. Data validation.For example, if the user wants the user to quickly enter an Integer, I want a custom Inputbox form to show up with a TextBox, which only allows Integer input. If he wants the user to choose from a List(Of String), I show a form with a Combobox instead, from which the user can then choose.
View 8 Replies
Aug 11, 2011
I am writing a scripting language which used .net for execution. Now I have written a function which accepts an object and return a set of numeric values. I wanted user to pass any numeric array (e.g. integer,single,double,long) and I could return values in that format. I mean user can retrieve value in any numeric array type rather than specifying an array type. E.g.
[Code]...
View 15 Replies
Mar 26, 2009
I'm looking for a list numeric type initalization identifiers for both C# and VB.Net.[code]
View 3 Replies
Aug 17, 2010
how to search a string for numeric type characters and return only the numeric characters to an int field? For example: A field contains a string of "Net 30 days" or "Net 10 days" etc. I want to return only the "30" or "10" or whatever # to a int field.
View 17 Replies
Jul 27, 2010
am new to VB programming and i just encountered an error saying i can not convert data type vachar to numeric and my db is SQL 2005 and data type for ALL columns is varchar. please can anyone HELP. this is where i am getting the error: myInsertQuery = "INSERT INTO hotrrefuge( [REGISTRATION_ NUMBER],surname, firstname, othernames, office_address,title,
[Code]...
View 12 Replies
Apr 29, 2010
When I try to close my form it gives me the following error; Error converting data type varchar to numeric. I have only one field which is numeric - ProjectID, and when I close this form sometimes this txtProjectID is empty and this calls the error. But if there is a number in the txtProjectID it closes fine.
View 3 Replies
Aug 12, 2010
I am getting the error Error converting data type varchar to numeri when trying to save some of the information that is entered in a textbox to my sql server 2005 database. HEre is the code for my insert statement.
'declare your variables
Dim FirstName, LastName, Comments, MRN
Dim sConnString, connection, sSQL [code]......
View 1 Replies
Apr 19, 2012
Is there a way to set a textbox in vb such that it does not accept a space or a non-numeric character entered by a user? I am writing a program that has a textbox called "phoneField" in which the user should type in only numbers and if the user trys to type a non-numeric character or space, nothing should be displayed in the textbox. How could that be done?
View 3 Replies
Jul 21, 2011
What is the numeric data type that can hold the biggest Integer in VB.NET 2010?
View 5 Replies
Apr 6, 2012
Is there a numeric text box, not an up-down box, a SIMPLE numeric box into which the user can place a number, 5 boxes actually, then on command have the five boxes added and the sum displayed?
View 8 Replies
May 4, 2010
I have this code which populated my form;
Private Sub populateprojdetails()
Dim cmd As New SqlCommand
Dim conn As SqlConnection = GetDbConnection()[code]....
The Error I receive is "Error converting data type varchar to numeric".
View 1 Replies
Jan 22, 2010
I am reading a data file and storing them in an array of string.Data is random, could be like "1","2","133,18" but sometimes there can be missing values like "?".Once I load the data in the array, I want to check if at least a majority (like 60% of them) are numeric values.If yes, then I wanna track down the higher and lowest value in the array, and output a range of 5.Loop through the array
If 60% of them are numbers (integers or decimals) then find highest value, find lowest value end if produce range
If for example lowest = 1 and highest = 100, range of 5 means 0,20,40,60,80,100 (so 5 ranges are 0-20, 20-40, 40-60, 60-80, 80-100).Also if the ranges turn to have decimals due to weird numbers, I would like to round them up.My problem is, in order to find highest and lowest when there are non numeric values in the array like "?", how should I handle those? I was thinking of something like Double.NaN but I would have to have an array of doubles.
View 3 Replies
Jul 17, 2010
In my program I have an interface iGraphable that contains two properties: Abscissa and Ordinate. Then I have an xxxx class (actually more than one) implementing iGraphable and a ListOfxxxx class implementing BindingListView(Of xxxx).To draw graphs I have a Graph class with a property called Data whose type is BindingListView(of iGraphable).Why have I a cast exception when I pass a BindingListView(Of xxxx) to the Data property.
View 3 Replies
Dec 14, 2011
I have the a function that is declared like so: Public Sub Modify(Of SIMType As {New, DAOBase})(ByVal obj As SIMType)
I also have a class called Products which is declared like so:
Public Class Products Inherits DAOBase
So as you can see, if I were to call this function like so:
Modify(Of Products)(new Products())
This would not be an issue. The issue actually arises when I try to cast the object being past in to its real type. For example: both do not work. I get a Value of type SIMTYPE cannot be converted to IMS.Products error. Im assuming this is because I am using generics. Is there a way to adjust my function to allow for a casting operation like I am trying to do? In the end, what I need is a reference of the actual type (Products in this case) to the object.
View 2 Replies
Jan 6, 2012
I have a function called Modify. It is delcared like so:Public Function Modify(Of SIMType As {New, DAOBase})(ByVal obj As DAOBase) As Boolean
You can see that this function is generic. It takes as a paramer a object that is a DAOBase or subclasses of DAOBase.Inside the modify function there is a call like so:
DAOToGP(obj)This is where the polymorphism comes into play. There are four or so subclasses I have created of DAOBase. I have written a DAOToGP() for each of these types. So in the Modify() function, when it calls the DAOToGP(obj), polymorphism should kick in and it should call the correct implementation of DAOToGP() depending on the type that I pass into Modify().
However, I get the following error:Error 20 Overload resolution failed because no accessible 'DAOToGP' can be called without a narrowing conversion:'Public Shared Function DAOToGP(distributor As Distributors) As Microsoft.Dynamics.GP.Vendor': Argument matching parameter 'distributor' narrows from 'SierraLib.DAOBase' to 'IMS.Distributors'.'Public Shared Function DAOToGP(product As Products) As Microsoft.Dynamics.GP.SalesItem': Argument matching parameter 'product' narrows from 'SierraLib.DAOBase' to 'IMS.Products'. C:Usersdvargo.SIERRAWOWIRESDocumentsVisual Studio 2010ProjectsSIMDev_2SIMIMSDVSIMLibGPGPSIMRunnerRunnersRunnerBase.vb 66 39 IMS
I am kind of at a loss here. I am not sure why it cant figure out which function to call.
View 2 Replies
Dec 8, 2010
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
Nov 30, 2010
I'm trying to reduce code bloat, reduce errors and simplify codebehind by use of generics. In this case I'm applying generics to declaration of persistable properties. Persistance is implemented by My.Settings. Here's the code so far.
[Code]...
View 1 Replies
Apr 28, 2009
What are the situations and their associated benefits of using Generics over Inheritance and vice-versa, and how should they be best combined?I'm going to try to state the motivation for this question as best I can:I have a class as shown below:
[Code]...
Now suppose I have a repository that takes an InformationReturn argument, that has to strore different fields in a DB depending on the type of Info object T is. Is it better to create different repositories each for the type T is; one repository that uses reflection to determine the type; or is there a better way using inheritance capabilities over/with generics?
View 6 Replies
Dec 27, 2011
The codes below are exactly the same, except that one is C# and the other one is VB.Net.C# compiles just fine, but VB.Net throws the warning:
Interface 'System.IObserver(Of Foo)' is ambiguous with another
implemented interface 'System.IObserver(Of Bar)' due to the 'In' and
'Out' parameters in 'Interface IObserver(Of In T)'
Why does VB.Net show the warning and not C#? And most important, how can I resolve this problem?
Obs: I'm using .Net Framework 4 with Visual Studio 2010 Ultimate.
VB.Net Code:
Module Module1
Sub Main()[code]......
View 2 Replies
Oct 28, 2011
Names of entities have been altered to protect their identities...
I've created a class called AnimalSearch(Of AnimalType As Animal(Of Int32))
Public Class AnimalSearch(Of AnimalType As Animal(Of Int32))[code]...
View 2 Replies
Mar 9, 2011
I'm not sure if this is possible or not. I have a number of different classes that implement interface IBar, and have constructors that take a couple of values. Rather than create a bunch of almost identical method, is it possible to have a generic method that will create the appropriate constructor?
private function GetFoo(Of T)(byval p1, byval p2) as List(Of IBar)
dim list as new List(Of IBar)
dim foo as T
' a loop here for different values of x
foo = new T(x,p1)
list.Add(foo)
' end of loop
return list
end function
I get:
'New' cannot be used on a type parameter that does not have a 'New' constraint.
View 2 Replies
Apr 21, 2012
I have a VB6 project with about 100 custom collection classes which I want to convert to VB.Net. A typical example would be something like.
Class CAccounts
Private m_Accounts As New Collection
Public Sub Add(newItem As CAccount)
m_Accounts.Add newItem, newItem.IdKey
[code].....
All of the collection classes in the project use this standard approach. However, not all the properties/methods of the collection classes are actually used. Most of the collection are used in "for each" loops. Keyed access using the string key is quite common. Keyed access by index is much less common.
Ideally I'd like to take a standard approach to converting these classes. I don't really want to have to review each collection and it's usage to consider whether I need a List, Dictionary, etc. Some of these collection contain 100,000 objects, and some will only contain 10. However, on the other hand I don't want to cause performance problems by using a more complex structure where a simpler option would do.
Sticking with the old style Collection. So, it would be relatively easy to convert to VB.Net But, I'd rather move to the more modern structures.Have CAccounts Inherit KeyedCollection(Of String, CAccount). Fortunately most of the classes held in the collections do have the key as part of the class (eg CAccount.IdKey above). This seems to work well. However, relatively few classes will access the colelction by numeric index. So, perhaps this is overkill if I only want keyed access by the string key?Have CAccounts Inherit Dictionary(Of String, CAccount) for the classes where I don't need access by numeric index. The problem I have with this is that all the existing "for each" loops are like "for each account in accounts". I don't want to have to change all these occurences to something like "for each account in accounts.Values". Although perhaps I can get round this by changing the default property?Have CAccounts Inherit MyCollection(Of String, CAccount), where MyCollection is my own bespoke collection. This seems a bit too much hard work.
View 2 Replies
Feb 12, 2010
I'm working with some XML representations of data instances.I'm deserializing the objects using .NET serialization but something in my soul is disturbed by having to write classes to represent the XML.[code]
View 4 Replies
Nov 8, 2009
This is my problem:
<System.Runtime.CompilerServices.Extension()> _
Function CastAs(Of TSource As TTarget, TTarget)(ByVal array As TSource()) As TTarget()
Return Global.System.Array.ConvertAll(array, Function(src As TSource) DirectCast(src, TTarget))
End Function
View 10 Replies
Jul 28, 2010
I have a Class that is defined as
Public MustInherit Class Entity(Of T As Entity(Of T))
And various classes derived from it. I would like to have another class accept all of the derived objects as a property, but I cannot seeem to find a workable syntax. If it were a parameter of a sub, I could say
Public Sub Foo(T As Entity(Of T))(TheEntity As T)
I can't seem to get that to work for a property:
Public Property E(Of Entity(Of T))() As Entity(Of T)
Gives me "Type parameters cannot be specified on this declaration"
Public Property E() As Entity2008(Of T)
Gives me "Type Parameter T does not inherit from or implement the constraint type ..."Is there an acceptable way to do this or am I stuck with using a Set Sub and a Get Function?
View 2 Replies