Umwandeln von Int in generische Aufzählung in C #

Ähnlich zuCast int to enum in C # Meine Aufzählung ist jedoch ein generischer Typparameter. Was ist derBeste Art und Weise damit umzugehen?

Beispiel:

<code>private T ConvertEnum<T>(int i) where T : struct, IConvertible
{
    return (T)i;
}
</code>

Erzeugt einen CompilerfehlerCannot convert type 'int' to 'T'

Der vollständige Code lautet wie folgt, wobei value den Wert int oder null enthalten kann.

<code>private int? TryParseInt(string value)
{
    var i = 0;
    if (!int.TryParse(value, out i))
    {
        return null;
    }
    return i;
}

private T? TryParseEnum<T>(string value) where T : struct, IConvertible
{
    var i = TryParseInt(value);
    if (!i.HasValue)
    {
        return null;
    }

    return (T)i.Value;
}
</code>

Antworten auf die Frage(5)

Ihre Antwort auf die Frage