2016-06-20 10 views
1

オブジェクトが特定のタイプであるかどうかをチェックする必要があります。 ATM私が使用して、次のい:長いと '不格好' ですタイプがnull可能でnull可能でないバージョンと一致するかどうかを調べる

columnLambda.Type.Name == "Guid" || Nullable.GetUnderlyingType(columnLambda.Type) != null && Nullable.GetUnderlyingType(columnLambda.Type).Name == "Guid"

を。 両方をチェックするソリューションが組み込まれていますか?あなたがコンパイル時に知られている具体的な値の型をチェックしたい場合は

(Nullable.GetUnderlyingType(columnLambda.Type) ?? columnLambda.Type) == typeof(Guid) 

または

(Nullable.GetUnderlyingType(columnLambda.Type) ?? columnLambda.Type).Name == "Guid" 

そしてもちろん、あなたは、単にW/Oそれを行うことができます:このことについてどのように

答えて

3

@Lee答えのような反射。

+0

おかげイヴァンは、これはそんなに良く、私はATMを使用しています何よりもです。 –

1

あなたは自分の名前から直接代わりの種類を一致させることができます。

columnLambda.Type == typeof(Guid) || columnLambda.Type == typeof(Guid?) 
関連する問題