In my early .NET days I ran into a problem many developers integrating with other systems do. Unlike XML with it’s
xsl:nil or database fields with
<null> the standard .NET value-types don’t support the concept of null for missing values. It’s such an important omission that Microsoft implemented it in .NET 2.0 (now gone RTM and up on MSDN) with a generics class named Nullable
For those of us still working with .NET 1.1 the NullableTypes project provides null-capable versions of all your favorite .NET types and unlike the SqlTypes included in .NET these match the System types for precision and provide support for .NET remoting and web services.
Yesterday NullableTypes 1.3.1 beta was release which adds (since the last 1.2 stable release):
- New types (
DateTime.Addmethod returns new instance in keeping with the the other immutable classes
- Security enhancement (reduced needed permissions/attack surface)
NullableInt16.GetHashCodenow returns hash codes identical to Int16
- Improvements and additions to the unit tests
With my contributions now including
NullableTimeSpan and implementing
IXmlSerializable I am finally feeling like an open source/free software contributor.
I’ve got a few more ideas for NullableTypes that I’ll be working through with LuKa around unit testing and .NET 2.0 source compatibility.