NonNullPointer

C++で言うところの参照のように、nullを代入できない参照。

/// <summary>nullを代入できない参照</summary>
public sealed class NonNullPointer<T>
{
	private T org;
	private NonNullPointer() { }
	public NonNullPointer(T o) { Value = o; }
	public T Value
	{
		get { return org; }
		set
		{
			if (value == null) throw new ApplicationException("Null pointer");
			org = value;
		}
	}
}

pmokyさんの話題から。
http://d.hatena.ne.jp/pmoky/20051217
未テスト。便利かどうかは不明。