C# 2.0 では、 値型に Null が代入できるようになりましたね。
Null 許容型 というキーワードです。
書き方は

型名?  変数名

といった感じで、まぁ、ちょっと自身なさげな型宣言をしたら、Nullもあつかえるんだな~
と、覚えておくと親しみやすいかも(^^;
例) 以下の例では、変数名の宣言と同時に初期値を代入しています。
 int?           i        = 10;
 double?    d1     = 3.14;
 bool?       flag    = null;
 char?       letter  = 'a';
 int?[]        arr     = new int?[10];
実際には、
 int?           i        = 10;
は、内部では、
 System.Nullable<int>  i = 10;
と、展開されています。

VBはこの書き方に近いですね。
 
VBの例)
 Dim i As Nullable(Of Integer)  = 10

 
で、その変数が null かどうかを調べるには、 HasValue を使います。
変数の値の出力には、Value も使えます。
例)
 int?           i        = 10;
 if (i.HasValue)  {          //  null かどうかを判定
     System.Console.WriteLine(i.Value);
 } 
 else
 {
     System.Console.WriteLine("Nullです。");
 }
null かどうか?を調べたいなら?こんな書き方は? と、おもったあなた!
はい、大丈夫です。
 if (i == null)
でも、もちろんOK

このあたりまでは、感覚的についていけるのですが、
この if 文、もっと簡単にかけないかな?といいうことで、
三項演算子を使うと以下のようにシンプルに書けますね。
(同じ整数型を返すために -1 を返すようにちょっと変更)

 Console.WriteLine(i == null ? -1 : i);

感覚的には、 null といった特殊な時は後回しに書いて、

 Console
.WriteLine(i != null ? i : -1);

と、書いたほうが好きなのですが、ま、これはご自由にということで(^^;

で、さらに C# 2.0の演算子を使うと、

Console.WriteLine(i ?? -1);

と、書けてしまうわけです。


というわけで、
??演算子(null coalescing operator )

覚えておいて損はないですよー。
VBでは残念ながら使えないようですね~。
(MSDN フォーラムで聞いてみました。)
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=463935&SiteID=7


詳しく勉強したい方は MSDN のここをご覧ください。
MSDN ライブラリ > 開発ツールと言語 > Visual Studio ドキュメント > Visual C# > C# プログラミング ガイド > null 許容型 > Null 許容型の使用
C# プログラマーズ リファレンス 
Null 許容型の使用 (C# プログラミング ガイド) 
http://msdn2.microsoft.com/ja-jp/library/2cf62fcy.aspx


かんけいないけど、検索で、 "??演算子"  というキーワードで検索してもずえんずえんヒットしません・・・
かんけいないけど、i : -1 が横向きで、口をふにってやってるのおっちゃんの顔にしかみえんとです・・・

なお、MSDNでは、現在、「三項演算子」を「三次演算子」とTypoされてしまっているので、
これまた検索するとき大変・・・