ipos estáticos não podem ser usados como argumentos de ti

Eu tenho uma classe genérica, que me ajuda a fazer verificações nos valores dos argumentos

internal sealed class Argument<T>
    where T : class
{
    private void TraceAndThrow(Exception ex)
    {
        new InternalTraceHelper<T>().WriteError(ex);
        throw ex;
    }

    internal void ThrowNull(object value, string argName)
    {
        if (ReferenceEquals(value, null))
        {
            TraceAndThrow(new ArgumentNullException(argName));
        }
    }

    internal void ThrowIf(bool condition, string argName)
    {
        if (condition)
        {
            TraceAndThrow(new ArgumentException(null, argName));
        }
    }


    internal void ThrowNotInEnum(Type enumType, object value)
    {
        if (!Enum.IsDefined(enumType, value))
        {
            TraceAndThrow(new ArgumentOutOfRangeException(Resources.ArgEnumIllegalVal.InvariantFormat(value)));
        }
    }
}

Mas quando tento usá-lo com uma classe estática:

internal static class Class1
{
    private static Argument<Class1> _arg;
}

Recebi este erro (na compilação):

static types não podem ser usados como argumentos de tipo

O que estou fazendo de errado?

questionAnswers(5)

yourAnswerToTheQuestion