internal static void Dispose(T @this) { var type = @this.GetType(); var func = type == typeof(T) ? Func : DynamicCache.GetOrAdd(type, ClassDisposerCache <Object> .GetClassDisposeFunc); func(@this); }