Loading components on startup, with timing measurements
You need a generic method like this:

static T createInstanceOf&lt;T&gt;() where T : new() {
  var stopwatch = Stopwatch.StartNew();
  T result = new T();
  stopwatch.Stop();
  Logger.Trace("Loaded "+ result.GetType().Name +" [took " + packetManagerStopwatch.ElapsedMilliseconds + "ms]");
  return result;
}


Now you can simply use it like this:

_packetManager = createInstanceOf&lt;PacketManager&gt;();
_achievementManager = createInstanceOf&lt;AchievementManager&gt;();
_talentTrackManager = createInstanceOf&lt;TalentTrackManager&gt;();
_badgeManager = createInstanceOf&lt;BadgeManager&gt;();
// and so on...