Pass A Nullable Valuetype Into A Non Nullable Valuetype?

Sep 17, 2009

I accidently wrote some code today that was like this[code]...

I immediately noticed the issue, but I had already hit the run button. It compiled successfully, I ran it through to the section and it threw an exception.

You can't do this in C#, it gives a compile error "cannot convert from 'int?' to 'int'".

Is there an 'Option Explicit' type switch that I can turn on to ensure that this sort of error does not occur again?

View 1 Replies


ADVERTISEMENT

.net - Can't Set 'Value' Of A Custom ValueType?

Apr 30, 2012

I have created a custom ValueType:

Private Structure MyValueType
Private _integerValue As Integer
Public Sub New(initValue As Integer)

[code]....

But I can't work out how I can test the value such as this:

Dim v As New MyValueType(3)
Dim x As New MyValueType(4)

[code]....

Error:Operator '=' is not defined for Types MyValueType and MyValueType

So how do I define Operators for my ValueType (I know this must be simple but I can't find an exmaple anywhere!)?Note I don't want to test If v.Equals(x)

View 1 Replies

How To Constrain To A ValueType

Jun 22, 2011

I've just spotted this thread:>> [URL] Here is a C# article on the subject:>> [URL] how to constrain to a ValueType?

I,E:
Public Class ExampleClass(Of T As System.ValueType)
End Class

View 10 Replies

C# - Inheriting From System.ValueType?

Jan 30, 2012

Am I correct in believing that any object that doesn't inherit from System.ValueType must therefore by definition be a reference type?

View 4 Replies

Valuetype Of 1d Array Cannot Be Converted From X To Y

Oct 15, 2009

I attempting to implement the Addemar Web Service (e-marketing system) into my VB.NET application. I've managed to get a connection and called a simple method, returning a array of field id's that is. I get into truble when I want to return the label of that particular id.Value of type '1-dimensional array of WindowsApplication1.AddemarWS.NamedValue' cannot be converted to 'WindowsApplication1.AddemarWS.NamedValue'.

[Code]....

View 7 Replies

.net - Get MinValue / MaxValue Of A Certain ValueType Via Reflection?

Mar 31, 2010

I need to this at runtime. I checked using Reflector and value types line like Int16, for example, should contain

[Code]...

EDIT: only for the example I used directly GetType(UInt16) but in real code this part is substituted by an instance of unknown-at-design-time .NET Type

View 3 Replies

Convert A String To Generic Type T When T Is A Valuetype?

May 1, 2012

fast way in VB to go from a string to a generic type T constrained to a valuetype (Of T as Structure), when I know that T will always be some number type?This is too slow for my taste:

Return DirectCast(Convert.ChangeType(myStr, GetType(T)), T)

But it seems to be the only sane method of getting from a String --> T. I've tried using Reflector to see how Convert.ChangeType works, and while I can convert from the String to a given number type via a hacked-up version of that code, I have no idea how to jam that type back into T so it can be returned.

I'll add that part of the speed penalty I'm seeing (in a timing loop) is because the return value is getting assigned to a Nullable(Of T) value. If I strongly-type my class for a specific number type (i.e., UInt16), then I can vastly increase the performance, but then the class would need to be duplicated for each numeric type that I use.

It'd almost be nice if there was converter to/from T while working on it in a generic method/class. Maybe there is and I'm oblivious to its existence?

Conclusion:Testing the three provided implementations below and my original DirectCast/ChangeType form, @peenut's approach of using a prepared delegate to fetch the Parse method from a basic type works. No error checking is done, however, so implementors need to remember to only use this with valuetypes that have a Parse method available. Or extend the below to do error checking.

All runs were done on a 32bit system running Windows Server 2003 R2 with 4GB of RAM. Each "run" is 1,000,000 executions (ops) of the method to be tested, timed with StopWatch and reported back in milliseconds.

Original DirectCast(Convert.ChangeType(myStr, GetType(T)), T):

1000000 ops: 597ms
Average of 1000000 ops over 10 runs: 472ms
Average of 1000000 ops over 10 runs: 458ms

[code]....

Comparatively, peenut's approach is almost 200ms faster when executed 1,000,000 times in a tight loop, so his approach wins out.

View 32 Replies

Main Difference Between A Class And A Type And A ValueType

Dec 17, 2009

what's the main difference between a Class and a Type and a ValueType.and is a Delegate a Type? or an eventhandler/event (the actual event itself)is every object a type? or is it only true in VB

View 3 Replies

.net - Faster Way To Convert From A String To Generic Type T When T Is A Valuetype?

Jan 6, 2011

Does anyone know of a fast way in VB to go from a string to a generic type T constrained to a valuetype (Of T as Structure), when I know that T will always be some number type?This is too slow for my taste:

Return DirectCast(Convert.ChangeType(myStr, GetType(T)), T)

But it seems to be the only sane method of getting from a String --> T. I've tried using Reflector to see how Convert.ChangeType works, and while I can convert from the String to a given number type via a hacked-up version of that code, I have no idea how to jam that type back into T so it can be returned.

I'll add that part of the speed penalty I'm seeing (in a timing loop) is because the return value is getting assigned to a Nullable(Of T) value. If I strongly-type my class for a specific number type (i.e., UInt16), then I can vastly increase the performance, but then the class would need to be duplicated for each numeric type that I use.

It'd almost be nice if there was converter to/from T while working on it in a generic method/class. Maybe there is and I'm oblivious to its existence?

Conclusion:Testing the three provided implementations below and my original DirectCast/ChangeType form, @peenut's approach of using a prepared delegate to fetch the Parse method from a basic type works. No error checking is done, however, so implementors need to remember to only use this with valuetypes that have a Parse method available. Or extend the below to do error checking.

All runs were done on a 32bit system running Windows Server 2003 R2 with 4GB of RAM. Each "run" is 1,000,000 executions (ops) of the method to be tested, timed with StopWatch and reported back in milliseconds.

Original DirectCast(Convert.ChangeType(myStr, GetType(T)), T):

1000000 ops: 597ms
Average of 1000000 ops over 10 runs: 472ms
Average of 1000000 ops over 10 runs: 458ms

[code]....

Using System.Reflection and calling InvokeMethod to get at the Parse method:

1000000 ops: 12213ms
Average of 1000000 ops over 10 runs: 11468ms
Average of 1000000 ops over 10 runs: 11509ms
Average of 1000000 ops over 10 runs: 11524ms

[code]....

Konrad's approach to generate IL code to access the Parse method and store the call into a delegate:

1000000 ops: 352ms
Average of 1000000 ops over 10 runs: 316ms
Average of 1000000 ops over 10 runs: 315ms

[code]....

peenut's approach of using a delegate to access the Parse method directly:

1000000 ops: 272ms
Average of 1000000 ops over 10 runs: 272ms
Average of 1000000 ops over 10 runs: 275ms

[code]....

Comparatively, peenut's approach is almost 200ms faster when executed 1,000,000 times in a tight loop, so his approach wins out. Although, Konrad's wasn't far behind and is itself a fascinating study of things like ILGenerator.

View 4 Replies

.net - Nullable Object Must Have A Value Vb?

Dec 5, 2011

I have a bigger code block which I have recreated in this simpler example:

[Code]...

View 1 Replies

Add Together Two Nullable Types?

Aug 27, 2010

I have: Dim nVar1 As Long?Dim nVar2 As Long?Dim nVarSum As Long?nVar1 = Nothing nVar2 = 5 nVarSum = nVar1 + nVar2 I would prefer the result to end with nVarSum being 5, instead of Nothing. I understand if you add something to an unknown value, you will end up with "somthing + unknown" or x+5 will always equal "x+5" not "5" because you are still carrying around that unknown "x". However, how can I effectively treat an unknown or Nothing as a zero for the purposes of addition in this case?(What is basically happening is that the end user is sending us a data file, this code parses that file and then sums together about 15 fields. If the user leaves those fields blank instead of assigning a zero to them, I need to treat it as if it was a zero for this one addition operation, but all the rest of the code needs to continue seeing it as a Nothing value since the user did not ACTUALLY submit zero... they submitted blank or nothing)

View 3 Replies

Can Nullable Types Be Used

Jun 27, 2012

Can Nullable Types be used in VB.NET? If so, is it possible to have a Nullable Integer that I can use with a field that accepts NULL in SQL Server?

View 4 Replies

How To Use Nullable Types

Aug 25, 2010

I'm converting an Access VBA app to VB.NET. It has dates defined as variants or objects to handle null values. I thought this would be a great chance to use the Nullable type. But I can't get it to work. Either it is inappropriate for what I am trying to use it for, or I am doing it wrong. Anyone know how to use it? Reader is a SqlDataReader.

[Code]...

I was hoping I didn't have to put a lot of If .. Null statements throughtout the code, but that is my only option unless someone has any other idea.

View 11 Replies

Nullable - What Does DataType Mean In .NET

Sep 15, 2011

I have the following line of code:

CType(IIf(CBool(product.IsDiscontinued Is Nothing Or product.IsDiscontinued = True), False, True), Boolean?)

What does the Boolean? mean at the end. I have seen it used on other data types as well.

View 3 Replies

Nullable DateTimePicker?

May 6, 2009

I have a Nullable DateTimePicker but it lacks a vital property, that is to be able to change its ForeColor, anyone who has some suggestion on how can this be done? Or perhaps a free nullable DateTimePicker out there that supports changing of backcolor and forecolor?This is C# but it should not be different with .Net, and I prefer posting it here since there is more traffic here over the C# section.

using System;
using System.Collections.Generic;
using System.ComponentModel;[code].....

View 2 Replies

Nullable Object Must Have A Value

Jan 31, 2012

Okay, none of the previous questions I have seen with this error seem to apply in this situation.tEmp is a class that contains (among other things) two nullable date fields.[code]During a routine on my form, I am attempting to see if the following conditions are true[code]I get the above error (the title of question), but when I hover over the debugger, NextReview and InsuranceEligibleDate are both Nothing (which is correct for the employee I am looking at).I am using VB2010, and the Properties in the Employee class are using the new way of declaring Properties (i.e. no set/get)

View 4 Replies

.NET: Why Doesn't This Nullable Work

Dec 15, 2010

dim str as nullable(of string) is this syntax incorrect?

View 1 Replies

C# 'AS' Equivalent For Nullable Types

Feb 15, 2011

C#'s 'as' keyword will let you do this: int? input = value as int? Here's what I would assume the vb.net equivalent would be: Dim input As Integer? = TryCast(value, Integer?) There's an intellisense error in the TryCast stating the operand must be a reference type but Integer? is a value type.

Intellisense on Nullable(Of Integer) says 'Represents an object whose underlying type is a value type that can also be assigned null like a reference type.' It seems C#'s 'as' handles this like a reference type where TryCast doesn't have this built in. In VB10 I was able to take advantage of the new CTypeDynamic function to do the casting. Conversion.CTypeDynamic Method

Dim input As Integer? = CTypeDynamic(Of Integer?)(value)

Or:

Dim input As Integer? = CTypeDynamic(Value, GetType(Integer?))

There's a cost here as CTypeDynamic examines the type at runtime.

My question is what is the elegant way to handle this without CTypeDynamic?

View 6 Replies

C# 'AS' Equivalent For Nullable Types?

Nov 15, 2011

Dim input As Integer? = TryCast(value, Integer?)There's an intellisense error in the TryCast stating the operand must be a reference type but Integer? is a value type.Intellisense on Nullable(Of Integer) says 'Represents an object whose underlying type is a value type that can also be assigned null like a reference type.'It seems C#'s 'as' handles this like a reference type where TryCast doesn't have this built in.

View 1 Replies

C# - Comparing The Nullable DateTime's?

Nov 17, 2010

I am a c#/asp.net developer and I am having to work on a VB/asp.net. I have two variables

Dim originalDate as DateTime?
Dim newDate as DateTime?

Both nullable datetimes, originalDate is a nullable date I am getting from the database and newDate time is set in code, I need to compare them, they can either both have dates, neither have dates or one have and one not.

I have a bit of code as follows:

if origEndDate = origEndDate then

When both origEndDate and origEndDate are "nothing" this statement is false (well when I run it in the watch window it comes back as nothing)!I don't understand why this is the case because I was under the impression doing an "=" compares the two values and as they are the same surely it should be true? What syntax should I be using as in C# I can do the above as so:

if (origEndDate == origEndDate) { }

and it will come back as true.

View 4 Replies

C# - Correct Way To Check If Nullable Has A Value?

May 8, 2011

assuming v is a nullable, I'm wondering what are the implications / differences between these usages:

VB:

If v Is Nothing Then
If v.HasValue Then

C#:

if (v == null)
if (!v.HasValue)

View 4 Replies

Marking Parameters As Nullable?

Dec 22, 2009

I've picked up some code from a colleague, and in one of his methods he has a boolean parameter: ByVal showProactiveChases As Boolean?. I had to look up the ? operator yesterday to see that it denotes a Nullable type. My question is, if I change it to: ByVal showProactiveChases As Nullable(Of Boolean), does the meaning remain the same? I think provided it doesn't change the meaning the second way is much more readable.

View 4 Replies

Property Keycode Is Non-nullable?

Apr 7, 2009

I am creating a setup project for my VB application. Everything seems to look fine. However when I tell it to build the solution I get the following error:Property 'keycode' is non-nullable. I have never seen this before in other setup projects and I can't find any help from MS.

View 8 Replies

Use Nullable(of T) For Property Using List<of T>?

Jan 17, 2012

In the below sample code, I have tried to use Nullable(of T) for DateTime and I want to use it same of the Dimensions property which is List(of Dimension).

CODE:

View 1 Replies

VS 2008 Nullable Object Must Have A Value?

May 20, 2009

I am getting an unusual error "Nullable object must have a value" when running the code below.

[Code].....

Interestingly the Stored proc used by the table adapter still runs and does the insert but the function returns the error.

View 8 Replies

VS 2010 Nullable DateTime?

Jun 3, 2010

For a project I need to convert a date field in my SQL Server 2008 Database into a VB.net ListOf. Most of the records in StartDate field are NULL. VB.net doesn't recognize null values for DateTime.I need the NULL values to be dismissed, as they will be returned in a ListOf for a web service that I'm creating.

Here is my syntax and a sample of the current returned values in the XML message of the ListOf:

Class Property StartDate() As System.Nullable(Of DateTime) = Nothing
asmx.vb myUserRoleAppInfo.StartDate = myPermissionUser.StartDate
XML Message (Listof)

[Code]...

View 4 Replies

.net - Cannot See Members Of A Structure Declared As Nullable?

Aug 11, 2009

In VB.NET, why can't I see a member of a structure when I make it a nullable type?

Example:
Public Structure myNullable
Dim myNullVar As Integer
End Structure
Sub Main()

[Code]...

View 5 Replies

.net - Default Value Of Nullable Integer Different In If() Function

Dec 7, 2010

I am trying to understand why the two code samples behave differently. I always believed the If() function to mimic the If language feature. Or am I looking at a behavior of Nullable(Of Integer) that is causing this?

Sample #1:
If Not String.IsNullOrWhiteSpace(PC.SelectedValue) Then
Dim pcFilter1 As Integer? = CInt(PC.SelectedValue)
Else

[Code]....

View 1 Replies

.net - Nullable Nested Objects And The Maybe Monad?

Sep 19, 2011

I'm struggling to implement a maybe monad - which I've called Nullable in this example.

The Nullable Class is implemented as follows: Public NotInheritable Class Nullable(Of TClass)

Private _value As TClass
Private _hasValue As Boolean
Public Shared Function Create(ByVal value As TClass) As Nullable(Of TClass)
Return New Nullable(Of TClass)(value)
End Function

[Code]...

The way the monad is implemented at the moment I would need to issue the following to access a property on the nested child class dim id = MyParentClass.ChildClass.Value.ID

but ideally what I'd like to be able to do is to have the following statement dim id = MyParentClass.ChildClass.Id and if the ChildClass is null then just return a default value for the property type.

I tried implementing this using Default Properties and setting the Value as default via an attribute but it wouldn't compile. Is that going to be possible or perhaps there is a better way of architecting it - or maybe I just haven't 'got' the maybe monad?

View 1 Replies

.net - Result With IF() Function And A Nullable Integer?

Dec 1, 2009

I would expect the following vb.net function to return a value of Nothing, but instead its returning a value of 0.

[Code]...

View 2 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved