I’m working with expressions and I need a method which receives an object of some type (currently unknown). Something like this:
public static void Foobar(object Meh) { }
What I need to is make this method return a Nullable<T> version of Meh, but the type T is from Meh.GetType(). So the return would be Nullable<MehType>, where MehType is the type of Meh.
Any ideas or suggestions?
Thanks
Update: the reason why I needed this is because of this exception:
The binary operator Equal is not defined for the types ‘System.Nullable`1[System.Int32]’ and ‘System.Int32’.
return Expression.Equal(leftExpr, rightExpr);
where leftExpr is a System.Nullable1[[System.Int32 and rightExpr is a System.Int32.
If you don’t know the type at compile time, the only way of expressing it is as
object– and as soon as you box a nullable value type, you end up with either a null reference, or a boxed non-nullable value type.So these snippets are exactly equivalent in terms of the results:
In other words, I don’t think you can really express what you’re trying to do.