Let's say I have a method that I want to make generic, and so far it had a big switch case of types.
For an simplified example,
switch (field.GetType()) {
case Type.Int: Method((int)x)...
case Type.NullInt: Method((int?)x)...
case Type.Long: Method((long)x)...
I'd like to be able to just call my GenericMethod(field) instead and I'm wondering if this is possible and how would I go around doing it.
GenericMethod(field)
public void GenericMethod<T>(T field)
Can I use reflection to get a type and the pass it into the generic method somehow, is it possible to transform Type into ?
Can I have a method on the field object that will somehow give me a type for use in my generic method?
Sorry for a confusing question, I'm not really sure how to phrase it correctly, but basically I want to get rid of switch cases and lots of manual coding when all I need is just the type (but that type can't be passed as generic from parent class)
Here's a real world side project example of how I handle this situation:
You said elsewhere that it feels like you're doing something wrong if you have to check for every type just to use a Generic. I think you're right in thinking along those lines. There should be a minimal number of types to check, and Ideally limited via a type constraint.
Here's example that includes a constraint: