0

次の3つの方法があります。

    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);
    }

dynamic キーワードやジェネリック型キャストなどの C# の概念を理解しようとしています。これらの 3 つのメソッドを 1 つにリファクタリングしたいと本当に思っています。そうしないと、他の単位系スケール用にまだ書かれていない約 5 つのメソッドを使用する必要があるからです。これらのメソッドを 1 つにリファクタリングする良い方法はありますか? もしそうなら、それがどのように機能するかについても説明できますか?ありがとう!

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 に答える