using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
MainX(new String[] { "50", "Fahrenheit", "To", "Celsius"});
}
delegate double TemperatureConvert(double valor);
static Dictionary<String, TemperatureConvert> converters = new Dictionary<string, TemperatureConvert>
{
{"CelsiusToFahrenheit", TemperatureConverter.CelsiusToFahrenheit},
{"CelsiusToKelvin", TemperatureConverter.CelsiusToKelvin},
{"FahrenheitToCelsius", TemperatureConverter.FahrenheitToCelsius},
{"FahrenheitToKelvin", TemperatureConverter.FahrenheitToKelvin},
{"KelvinToFahrenheit", TemperatureConverter.KelvinToFahrenheit},
{"KelvinToCelsius", TemperatureConverter.KelvinToCelsius}
};
static void MainX(string[] args)
{
var temperature = double.Parse(args[0]);
var conversor = args[1] + args[2] + args[3];
var convertedTemperature = converters[conversor](temperature);
Console.WriteLine(convertedTemperature);
}
}
public static class TemperatureConverter
{
public static double CelsiusToFahrenheit(double valor)
{
Console.WriteLine("CelsiusToFahrenheit " + valor);
return valor;
}
public static double CelsiusToKelvin(double valor)
{
Console.WriteLine("CelsiusToKelvin" + valor);
return valor;
}
public static double FahrenheitToCelsius(double valor)
{
Console.WriteLine("FahrenheitToCelsius" + valor);
return valor;
}
public static double FahrenheitToKelvin(double valor)
{
{
Console.WriteLine("FahrenheitToKelvin" + valor);
return valor;
}
}
public static double KelvinToFahrenheit(double valor)
{
Console.WriteLine("KelvinToFahrenheit" + valor);
return valor;
}
public static double KelvinToCelsius(double valor)
{
Console.WriteLine("KelvinToCelsius" + valor);
return valor;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlNYWluWChuZXcgU3RyaW5nW10geyAiNTAiLCAiRmFocmVuaGVpdCIsICJUbyIsICJDZWxzaXVzIn0pOwoJfQoJCiAgICBkZWxlZ2F0ZSBkb3VibGUgVGVtcGVyYXR1cmVDb252ZXJ0KGRvdWJsZSB2YWxvcik7CgogICAgc3RhdGljIERpY3Rpb25hcnk8U3RyaW5nLCBUZW1wZXJhdHVyZUNvbnZlcnQ+IGNvbnZlcnRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIFRlbXBlcmF0dXJlQ29udmVydD4KICAgIHsKICAgICAgICB7IkNlbHNpdXNUb0ZhaHJlbmhlaXQiLCBUZW1wZXJhdHVyZUNvbnZlcnRlci5DZWxzaXVzVG9GYWhyZW5oZWl0fSwKICAgICAgICB7IkNlbHNpdXNUb0tlbHZpbiIsIFRlbXBlcmF0dXJlQ29udmVydGVyLkNlbHNpdXNUb0tlbHZpbn0sCiAgICAgICAgeyJGYWhyZW5oZWl0VG9DZWxzaXVzIiwgVGVtcGVyYXR1cmVDb252ZXJ0ZXIuRmFocmVuaGVpdFRvQ2Vsc2l1c30sCiAgICAgICAgeyJGYWhyZW5oZWl0VG9LZWx2aW4iLCBUZW1wZXJhdHVyZUNvbnZlcnRlci5GYWhyZW5oZWl0VG9LZWx2aW59LAogICAgICAgIHsiS2VsdmluVG9GYWhyZW5oZWl0IiwgVGVtcGVyYXR1cmVDb252ZXJ0ZXIuS2VsdmluVG9GYWhyZW5oZWl0fSwKICAgICAgICB7IktlbHZpblRvQ2Vsc2l1cyIsIFRlbXBlcmF0dXJlQ29udmVydGVyLktlbHZpblRvQ2Vsc2l1c30KICAgIH07CgogICAgc3RhdGljIHZvaWQgTWFpblgoc3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICB2YXIgdGVtcGVyYXR1cmUgPSBkb3VibGUuUGFyc2UoYXJnc1swXSk7CiAgICAgICAgdmFyIGNvbnZlcnNvciA9IGFyZ3NbMV0gKyBhcmdzWzJdICsgYXJnc1szXTsKCiAgICAgICAgdmFyIGNvbnZlcnRlZFRlbXBlcmF0dXJlID0gY29udmVydGVyc1tjb252ZXJzb3JdKHRlbXBlcmF0dXJlKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoY29udmVydGVkVGVtcGVyYXR1cmUpOwogICAgfQp9CgpwdWJsaWMgc3RhdGljIGNsYXNzIFRlbXBlcmF0dXJlQ29udmVydGVyCnsKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIENlbHNpdXNUb0ZhaHJlbmhlaXQoZG91YmxlIHZhbG9yKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJDZWxzaXVzVG9GYWhyZW5oZWl0ICIgKyB2YWxvcik7CiAgICAgICAgcmV0dXJuIHZhbG9yOwogICAgfQogICAgcHVibGljIHN0YXRpYyBkb3VibGUgQ2Vsc2l1c1RvS2VsdmluKGRvdWJsZSB2YWxvcikKICAgIHsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiQ2Vsc2l1c1RvS2VsdmluIiArIHZhbG9yKTsKICAgICAgICByZXR1cm4gdmFsb3I7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBGYWhyZW5oZWl0VG9DZWxzaXVzKGRvdWJsZSB2YWxvcikKICAgIHsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRmFocmVuaGVpdFRvQ2Vsc2l1cyIgKyB2YWxvcik7CiAgICAgICAgcmV0dXJuIHZhbG9yOwogICAgfQogICAgcHVibGljIHN0YXRpYyBkb3VibGUgRmFocmVuaGVpdFRvS2VsdmluKGRvdWJsZSB2YWxvcikKICAgIHsKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJGYWhyZW5oZWl0VG9LZWx2aW4iICsgdmFsb3IpOwogICAgICAgICAgICByZXR1cm4gdmFsb3I7CiAgICAgICAgfQogICAgfQogICAgcHVibGljIHN0YXRpYyBkb3VibGUgS2VsdmluVG9GYWhyZW5oZWl0KGRvdWJsZSB2YWxvcikKICAgIHsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiS2VsdmluVG9GYWhyZW5oZWl0IiArIHZhbG9yKTsKICAgICAgICByZXR1cm4gdmFsb3I7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBLZWx2aW5Ub0NlbHNpdXMoZG91YmxlIHZhbG9yKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJLZWx2aW5Ub0NlbHNpdXMiICsgdmFsb3IpOwogICAgICAgIHJldHVybiB2YWxvcjsKICAgIH0KfQ==