I’m having a lot of trouble with explicit casts of generic types.
I have the following classes (their content isn’t important) :
<code>NPCEventFlags
NPCMissions
NPCAlbertEventFlags : NPCEventFlags
NPCAlbertMissions : NPCMissions
NPCInfos<T, U> where T : NPCEventFlags where U : NPCMissions
private static NPCInfos<NPCAlbertEventFlags, NPCAlbertMissions> GetAlbertNPCInfos();
(NPCInfos<NPCEventFlags, NPCMissions>)(object)GetAlbertNPCInfos() // CRASH AT RUNTIME
</code>
<code>NPCEventFlags
NPCMissions
NPCAlbertEventFlags : NPCEventFlags
NPCAlbertMissions : NPCMissions
NPCInfos<T, U> where T : NPCEventFlags where U : NPCMissions
private static NPCInfos<NPCAlbertEventFlags, NPCAlbertMissions> GetAlbertNPCInfos();
(NPCInfos<NPCEventFlags, NPCMissions>)(object)GetAlbertNPCInfos() // CRASH AT RUNTIME
</code>
NPCEventFlags
NPCMissions
NPCAlbertEventFlags : NPCEventFlags
NPCAlbertMissions : NPCMissions
NPCInfos<T, U> where T : NPCEventFlags where U : NPCMissions
private static NPCInfos<NPCAlbertEventFlags, NPCAlbertMissions> GetAlbertNPCInfos();
(NPCInfos<NPCEventFlags, NPCMissions>)(object)GetAlbertNPCInfos() // CRASH AT RUNTIME
There are many different characters than just Albert, and I need to retrieve these infos for all of them, I can’t just duplicate the logic everywhere. I need to be able to do such a cast.
How can I make it work ?
Thank you.
I tried using interfaces and it didn’t help, but I may have misused them.
8