[Mono-dev] Nullable types and "as" operator

Michael Schurter michael at synthesyssolutions.com
Sun Sep 10 23:30:35 EDT 2006


The following code compiles and executes using MS.NET, but not Mono:

// START

using System;

public class NullableInt
{
         public static void Main()
         {
                 object x = null;

                 int? y = x as int?;  /* Causes CS0077 */

                 Console.WriteLine("y: '{0}'", y);
                 Console.WriteLine("y.HasValue: '{0}'", y.HasValue);
         }
}

// END

Produces the following compiler error using gmcs (TRUNK, revision 65212):

test.cs(9,14): error CS0077: The as operator must be used with a 
reference type (`int?' is a value type)
Compilation failed: 1 error(s), 0 warnings

Runtime output in Windows using MS.NET:

y: ''
y.HasValue: 'False'

I found this Mono bug related to Nullable types, but it appears to be 
different:
http://bugzilla.ximian.com/show_bug.cgi?id=79013

I first noticed this bug when trying to compile a large project which 
uses the syntax: "as int?" or "as bool?" in a few key places.

-- 
Michael Schurter
Synthesys Solutions



More information about the Mono-devel-list mailing list