On Saturday, 28 January 2017 at 07:03:51 UTC, medhi558 wrote:
public static NetworkMessage GetInstance(string id) { auto v = (id in ProtocolMessageManager.m_types); if (v !is null)return cast(NetworkMessage)ProtocolMessageManager.m_types[id].create();else return null; } }
As long as your class has a default constructor, you can use directly Object.factory(id):
public static NetworkMessage GetInstance(string id) { return cast(NetworkMessage)(Object.factory(id)); }