Converting Boolean And Date From Generic - Designer Does Not Accept A Simple CType?
Dec 6, 2010
I am creating a 'generic input dialog': InputDialog(Of T).The idea is that I can create new instances of this dialog for different values of T. For example,I can create an InputDialog(Of String) and it displays a textbox.I create an InputDialog(Of Boolean) and it displays two radiobuttons (I could use a Checkbox, irrelevant).I create an InputDialog(Of Date) and it shows a DateTimePicker.
I do this by simply checking the type of T at run-time.In this way it is not really generic, as the dialog still has to know which type T is (which is usually not the case), but the generic is in the fact that the T can be multiple types that require a TextBox. For example, InputDialog(Of String), (Of Integer), (Of Single), (Of Double), etc, all simply display a TextBox (and it is validated later),so I still want to use generics as much as possible.Anyway, the result of the dialog is of course a property of type T. This property needs to return the value in the textbox, converted from string to T, OR the value in the DateTimePicker, converted from Date to T,OR the checked property of the 'Yes' radiobutton, converted from Boolean to T.In order to convert from any object to T I googled and found this
vb.net
Imports System.ComponentModel Public Class GenericTypeConverter Public Shared Function FromObject(Of T)(ByVal value As Object) As T Dim tc As TypeConverter = TypeDescriptor.GetConverter(GetType(T)) Return CType(tc.ConvertFrom(value), T) End Function End Class
I have to use this, I cannot simply CType a string to T since a String cannot be converted to any type T.So, my Result property looks like this at the moment:
vb.net
Public ReadOnly Property Result()[code].....
This actually works for Strings, Integers, Doubles, Singles, etc. I pass it the String in the textbox and it converts it to 'T'(note: T is then a String, Integer or Double!) just fine.So, it can convert a String to a String, Integer or Double without any problems (I am validating the text before using the Result property so it will always be a valid integer, double, etc).However, it does not work for a Boolean, nor for a DateTime. When I try that, it says "BooleanConverter cannot convert from System.Boolean" or "DateTimeConverter cannot convert from DateTime". I realize it is a bit of a strange thing, since the object already IS a Boolean or a Date(Time) so no conversion should be done at all, but this doesn't work in design-time because I need to return the objects as type T.I know that T will be Boolean when the value to be converted is a Boolean, and that T will be DateTime when the value to be converted is a DateTime, but the designer does not accept a simple CType. As I said, it does not accept this:
Return CType(rbYes.Checked, T)
because 'Boolean cannot be converted to T'.
However, I did find a way to make it work, but it seems like a complete hack... I can assign the boolean to an Object and then convert that using CType:
Dim obj As Object
obj = rbYes.Checked
Return CType(obj, T)
This works, it's accepted during design-time, and it works during run-time, but it seems very wrong... Is there no better way to handle this?
View 5 Replies
ADVERTISEMENT
Feb 25, 2011
I know about the existence of System.Nullable(Of T) Structure.I am trying to write a class to replace it: The Nullable(Of T) Class [VB code below]. But when I tested the Nullable(Of T) Class (See NullableOfTClassTest Class, Method Main) an exception occurs when using the CType operator to convert from System.Int32.Why does this happen at runtime, why isn't my Ctype operator method being called?
NOTE: code below reordered and reduced in order to hilite problem.
Namespace MyNamespace
Public NotInheritable Class NullableOfTClassTest
Private Sub New()
End Sub
[Code]...
View 2 Replies
Oct 6, 2011
The following compiles in VB.NET (with Option Strict On) and outputs False:[code]Why does that work?The documentation clearly states that the three-argument version of If requires a Boolean as the first parameter:[code]So, why does this work? Is it a bug (or "hidden feature") in the compiler or is it a bug in the documentation and Boolean? is actually a valid type for the first argument of If(a, b, c)?In C#, b ? x : y does not compile if b is of type bool?.I've reported this issue to Microsoft Connect. Someone from MS has replied and confirmed that the documentation will be updated to include the Boolean? case.
View 4 Replies
Oct 1, 2010
I'm developing a custom control for numeric input that does some basic value range checking and have run into an issue when I set my property ValueMin equal to Long.MinValue. The IDE generates the following line in form1.designer.vb file that subsequently is flagged as generating an overflow.
Me.NumericInputBox1.ValueMin = CType(-9223372036854775808,Long)
I've done some checking using the Immediate Window with the following results.
?Long.MinValue
-9223372036854775808
?ctype(Long.MinValue, Long)
[Code].....
It appears that the CType function does not recognize the minimum Long value when the value is typed into the function, but works fine if it is passed Long.MinValue or a string with the value. It works fine for a typed in value equal to (Long.MinValue + 1). This problem only occurs with the Long (Int64) type.
View 5 Replies
Jan 13, 2011
In VB.NET 2010, how to return a boolean value as generic type without compile warning?
View 2 Replies
Mar 15, 2009
Say I have a generic list that is a list of a structure.
[Code]....
I always get an error that it's a value and cannot be set. Is there a way to change it without having to make a local copy of the item, then set the item on the list to that local item?
View 3 Replies
Jul 22, 2010
I am converting some C# code to VB, the following code is part of a function
if (bool.Parse(v["Parent"].ToString()))
{
e.Row.CssClass = "Parent";
[Code]....
The code throws an error "String was not recognized as a valid Boolean" But if I use this code
If CBool(v("Parent").ToString) = True Then
e.Row.CssClass = "Parent"
End If
It works fine, which is great
View 8 Replies
Feb 9, 2012
Why does casting a boolean to a byte in .NET give the following output?
Code Snippit:
Dim x As Boolean = 1
Dim y As Byte = x 'Implicit conversion here from Boolean to Byte
System.Diagnostics.Debug.Print( _
[Code].....
Why does True (which commonly is referred to as an integer representation of 1) convert to 255 when casted to a byte?
View 3 Replies
Apr 8, 2010
Title pretty much says it all. How do I format the date of a dateandtimepicker to insert it into the SQL date datatype?
View 20 Replies
Jul 18, 2011
Simple code! where am I going wrong. I get end of statement expected in line 4 after valid.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If valid('0') Is True Then msgbox("HI")
End If
[code].....
View 3 Replies
Aug 1, 2009
I am interfacing my pc to a device called a MiniBee which is basically a usb digital output adapter to allow electronic devices to be controlled by the pc. So, I need to be able to individually address the output channels of this device, the only problem is the DLL supplied with it will only accept an integer value which represents a binary instruction if that makes any sense. I have basically got 8 public boolean vars OUT1, OUT2 etc that I need to use to turn on/off the outputs by them being set to true/false.
So there are say 8 digital output channels to operate and it has to work like this:
SetOutputs(1) would turn on output 1 and turn all others off
SetOutputs(2) would turn on output 2 and all others off
SetOutputs(3) turns on 1 and 2 and all others off
How to turn my public bool vars into an integer based on what is set to true/false if you get my meaning as there must be an easy way but working it out individually there are far too many possible permutations.
View 1 Replies
Jul 21, 2009
So I've created a very simple UserControl that is pretty much just a combo box that has US States in it and a couple properties to return the selected value as an enumeration or a string, etc.The enumeration and string values I'm using are being referenced from an external library which is working. However, when I add my user control to another project the designer-generated code has errors in it. [code] I would assume that this probably has something to do with project settings or something similar for the user control. The control itself is in a separate project and compiled as a .dll which has been added to my main project's toolbox and subsequently added to my form. [code]
View 11 Replies
Feb 23, 2010
I need to design a simple label designer that could print labels for shelf items, just like in a grocery store. The requirements are that the label shall contain a name, a barcode (e.g. Code39 symbology), price and room for some extra text.
[Code]...
View 2 Replies
Nov 22, 2009
I have a function that works great in C# that I'm converting to VB.Net. I'm having an issue converting the result set to a generic list in VB.net.
The code:
Public Function GetCategories() As List(Of Category)
Dim xmlDoc As XDocument = XDocument.Load("http://my_xml_api_url.com")
Dim categories = (From category In xmlDoc.Descendants("Table") _
Select New Category()).ToList(Of Category)()
Return categories
End Function
The error occurs when convertng the result via .ToList(Of Category)() The error:
Public Function ToList() As System.Collections.Generic.List(Of TSource)' defined in 'System.Linq.Enumerable' is not generic (or has no free type parameters) and so cannot have type arguments.
Category is a simple object I've created, stored in the App_Code directory.
I have the necessary "Imports System.Collections.Generic" reference in the file so I don't see why I can't convert the result set to a generic list.
View 2 Replies
Mar 8, 2011
I have a generic List(Of Customer). The customer class has a name, address, and phone number properties. I also have a property of another class that accepts a customer name array. I am able to do this by doing the following:
Dim names As String()
Dim i As Integer = 0
'customer.GetCustomers is a List(of Customer)
[Code]....
Is there a better way to convert this to a string array?
View 1 Replies
May 21, 2010
I am trying to avoid every single function affecting my response time.therefore my question is using ToArray while converting generic list to array, does this take significant response time?should I use array directly while building my array within for each or working with list of and then at the endusing ToArray? any difference?
View 1 Replies
Jun 22, 2010
I am in ethiopia and we have 13 monthes. 12 of them with 30 days each and 13th month with 5 or 6 days. I want to sort my data by date using the bindingsource sort method. But to do that I need to set my date field a date data type. When i set the datatype to date, i can't enter some values like 13 for the month value and 30 for day value of 2nd month.
What I want is just to make my application accept 13 as a month and 30 as a day for all monthes, so that i can sort my data by date. Is it possible to do so by setting culture for my application or by some other means?
View 1 Replies
May 30, 2010
I have a field called PODate & TextBox txtPODate.text. It saves/updates fine when the txtPODate is filled. But when the txtPODate is blank, it throws an error. The problem is that I can't enter date for each record unless I got Purchase requisition converted into Purchase Order. Once it is converted to PO, I need to enter the date to update that filed. So, how can I make my program to accept blank date field.
View 6 Replies
Feb 3, 2010
I am in ethiopia and we have 13 monthes. 12 of them with 30 days each and 13th month with 5 or 6 days. I want to sort my data by date using the bindingsource sort method. But to do that I need to set my date field a date data type. When i set the datatype to date, i can't enter some values like 13 for the month value and 30 for day value of 2nd month.
What I want is just to make my application accept 13 as a month and 30 as a day for all monthes, so that i can sort my data by date. Is it possible to do so by setting culture for my application or by some other means?
View 6 Replies
Jun 19, 2009
I have 3 similar functions, that only change based on numeric type:
<Extension()> _
Public Function ToNullableShort(ByVal str As String) As Short?
Dim intReturn As Short
[Code].....
I was trying to make a generic function out of this, but couldn't do it. How can I make a generic function that will take a specific T and make it a Nullable(of T)?
View 2 Replies
Aug 6, 2010
I have a Generic.List(Of ImportedVehicle) - ImportedVehicle being a simple class as below.There is an enum property which is marked as public.When I serialize to XML using an XMLSerializer, the enum's value is just set to it's default value (which is NotAllocated) and doesn't actually represent the value that is set in code.[code]
View 1 Replies
Aug 1, 2011
I wrote my own database handling code (actually, I write T4 text templating files that generate my database code for me) and part of it takes care of converting values from a database (as Objects) to the desired types.
I have been using this generic function successfully:
vb.net
Public Overridable Function ConvertType(Of T)(value As Object) As T
Try
Return If(value IsNot Nothing AndAlso value <> DBNull.Value, DirectCast(value, T), Nothing)
[Code]....
Simple enough, but it doesn't work... The return type of the function is (and must be) T, so I cannot return a Boolean because a Boolean cannot be converted to T!
Well... It can in this case, because I specifically check that T is Boolean, but the compiler doesn't know this so it doesn't allow me to return a Boolean. I cannot cast the boolean to T either.
View 8 Replies
Aug 19, 2009
I wrote my own database handling code (actually, I write T4 text templating files that generate my database code for me) and part of it takes care of converting values from a database (as Objects) to the desired types. I have been using this generic function successfully:
vb.net
Public Overridable Function ConvertType(Of T)(value As Object) As T
Try
[code].....
View 13 Replies
Jun 16, 2010
I have string that contains "1.3" and I am checking with Date.TryParse method. It automatically converting into "1/3/2010". How to handle this?
View 1 Replies
May 1, 2010
I'm using date in the format dd-mm-yyyy and I need to convert a string inthis format to a date type.My string is "18-01-2010" but when I do the conversion using dim TargetDate as date=CDate(TgDstr).where TgDstr is "18-01-2010", the resutant TargetDate, as note in the debugger window, is #1/18/2010# rather than #18/1/2010# which I expected.What change in code should I made to get the desired result?
(P.s. I've checked the current culture with the following line of code:
Dim str As String = CultureInfo.CurrentCulture.Name and get the result 'zh-HK'... and the date-time format I find in the control panel is also in dd-mm-yy format)
View 6 Replies
May 3, 2010
I have a problem. I'm making a alarm clock and I need a way of converting a "dd/MM/yyyy HH:mm:ss" format into a date time format. This means I'll be able to compare the dates in a listbox using the for each function, to the current date and see whever it has passed and therfore the alarm should be deleted. It is currently in a string form so I can't use < and > to compare it to the current date as that is in a date form. I've tried using CDate but it doesn't work as it only will convert these formats:
"August 12, 2004", "2:07:30 PM" and "August 12, 2004 2:07:30 PM"
View 1 Replies
Jun 10, 2009
Im trying to write this converter with VB.NET...
View 1 Replies
Apr 26, 2010
This should be really simple and I figured out how to do it in VBA but it's different in .NET. I have a 3 digit Julian date that I would like converted to a regular date (Gregorian). So if the number is 91, then that means April 1st (non-leap year) and if it's 304 then that means October 31st (also non-leap year). In VBA I was using the Day and Month functions to help me get an output to make it mm/dd format.
[Code]...
View 2 Replies
Nov 17, 2009
From what I read it is a good convention to name a method that returns a boolean value with the prefix of "is" or "has". So in keeping with this convention I am trying to name a method in my program with this prefix but I am running Specifically I have a class called Day. It is a simple class with a few data members and one method that returns a boolean value of true or false. The name of the boolean variable is isSpecialDay. This class has a method called isSpecialDay which takes the date of the day, applies some criteria to the date and then sets the variable isSpecialDay to true or false. My problem is that the boolean variable is named isSpecialDay and so it the method. What should I do?
Public Class Day
Private TheDate as String
Private DayName as String
[code].....
View 8 Replies
Mar 21, 2010
is there any ready to go solution within the microsoft framework, regarding conversion of date to day?For example, i would like to convert this string 21/03/2010 (dd/mm/yyyy) to Sunday?
View 5 Replies