我现在遇到这样的情况:我需要在运行时确定对象的类型并且需要对该类型进行显式转换。类似于这样:
static void castTest(myEnum val)
{
//Call a native function that returns a pointer to a structure
IntPtr = someNativeFunction(..params..);
//determine the type of the structure based on the enum value
Type structType = getTypeFromEnum(val);
structType myStruct = (structType)Marshal.PtrToStructure(IntPtr, structType);
}
显然这不是有效的代码,但我希望它传达了我想做的事情的本质。我实际上要处理大约35种不同类型的编组操作。我有其他几个方法也需要使用相同的类型集合执行类似的操作。因此,我想将确定类型的逻辑与这些方法隔离开来,以便我只需要编写一次,而且方法保持干净和可读。
我必须承认自己在设计方面是一个彻头彻尾的新手。是否有人能够建议一个好的解决方法?我怀疑可能有一个适当的设计模式我还不知道。