したがって、私はアプリケーションで多くのデータベース作業を行っています-そして私のキャッシングシステムのいくつかの可能な戻り値があります。nullを返すか、デフォルト(type)を返すか、無効なオブジェクトを返すことができます(無効なオブジェクトとは、プロパティ/値が正しくないオブジェクトを意味します)。次のように、これらすべてのチェックを行う拡張メソッドを作成したいと思います。
public static bool Valid<T> (this T obj) where T: class
{
if (obj == null)
return false;
else if (obj == default(T))
return false;
//Other class checks here
else
return true;
}
if (obj == default(T))
問題は、私のコンパイラが常にfalseになると言っていることです。
何故ですか?