0

我有以下三种方法:

    private static Temperature.TemperatureScale GetTemperatureEnumFromString(string enumString)
    {
        return (Temperature.TemperatureScale)
            Enum.Parse(typeof (Temperature.TemperatureScale), enumString);
    }

    private static Stress.StressScale GetStressEnumFromString(string enumString)
    {
        return (Stress.StressScale)
            Enum.Parse(typeof (Stress.StressScale), enumString);
    }

    private static VolumetricFlow.VolumetricFlowScale GetVolumetricFlowEnumFromString(string enumString)
    {
        return
            (VolumetricFlow.VolumetricFlowScale) 
                Enum.Parse(typeof (VolumetricFlow.VolumetricFlowScale), 
                           enumString);
    }

我试图理解动态关键字和泛型类型转换等 C# 概念。我真的很想将这三种方法重构为一种,否则我将不得不使用大约 5 种尚未为其他单位系统尺度编写的方法。有没有人有一个很好的方法将这些方法重构为一个?如果是这样,你能解释一下它是如何工作的吗?谢谢!

4

1 回答 1

1

像这样的东西?

public static T GetValue<T>(string enumString)
{
    return (T)Enum.Parse(typeof(T),enumString);
}

var val = GetValue<Stress.StressScale>("...");
于 2013-07-02T20:32:46.663 回答