I wasn't sure, so I tried it - and it works fine:
using System;
class Test
{
static void Main()
{
int? i=null;
switch (i)
{
case 1:
Console.WriteLine(1);
break;
case 2:
Console.WriteLine(2);
break;
case null:
Console.WriteLine("null");
break;
}
}
}
Then I checked the ECMA spec - and it seems this doesn't actually
conform to the spec, without any warning. Naughty MS compiler

(The
mono compiler originally followed the spec, but then followed MS's
lead, as compatibility with MS appears to be more important to them
than strict ECMA conformity, which is not entirely unreasonable.)