English 中文(简体)
How to make the default value of a type as Nothing?
原标题:

For example Dim aInt as Integer should have the value as nothing instead of 0.

最佳回答

The only way to do that is to use Nullable<T> - i.e. (in C#):

int? aInt; // defaults to null

Regular integers have no concept of null/Nothing.

问题回答

As mentioned, use int? / Nullable(of Integer). Be careful not to overuse, though. I am working on a project where almost all valuetypes are declared as nullable / ?, and it is an absolute mess.

You ll have to use a nullable type. In vb.net - Nullable(Of Integer) (or Short, Byte)

In C# you need to use int? instead of int. Integers are value types and they can t have a null value.

With int? you can check the HasValue property to tell you it is is something other than null.

int? i = null;

i.HasValue // false;

to get the value use:

i.Value;

Integer cannot be "nothing". You need to declare it as:

dim aInt as Nullable(of Integer)

Other answers are right, you ll want to use a Nullable type. I wanted to precise the syntax for VB/C# and which version supports it:

VB9+ (Visual Studio 2008):

Dim aNullableInt As Integer?

VB8+ (Visual Studio 2005):

Dim aNullableInt As Nullable(Of Integer)

Whereas in C# 2.0 (Visual Studio 2005) you could already write it in both ways:

int? aNullableInt;
Nullable<int> aNullableInt;




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签