【问题标题】:Reading (and parsing) different types of input from console using a single function in C#使用 C# 中的单个函数从控制台读取(和解析)不同类型的输入
【发布时间】:2014-12-01 23:02:40
【问题描述】:

我想编写一个通用函数来读取和解析不同类型的输入。

我必须从用户那里获取多个输入,并且这些输入的数据类型不同。我想创建一个理想情况下应该执行以下操作的函数:

  • 将数据类型作为参数。让它成为 X
  • 执行 X.TryParse(Console.ReadLine()) 并返回输出

能否请您建议我在 C# 中执行此操作的方法。

【问题讨论】:

  • 我尝试将 Type 参数传递给函数。但这不起作用。

标签: c# type-conversion


【解决方案1】:
    public static T ConvertTo<T>(object value)
    {
        try
        {
            return (T)Convert.ChangeType(value, typeof(T));
        }
        catch(Exception ex)
        {
            return (T)(typeof(T).IsValueType ? Activator.CreateInstance(typeof(T)) : null);
        }

    }

    static void Main(string[] args)
    {
        Console.Write("Enter int: ");
        int a = ConvertTo<int>(Console.ReadLine());

        Console.Write("Enter decimal: ");
        decimal b = ConvertTo<decimal>(Console.ReadLine());

        Console.Write("Enter double: ");
        double c = ConvertTo<double>(Console.ReadLine());

        Console.Write("Enter Date Time: ");
        DateTime d = ConvertTo<DateTime>(Console.ReadLine());

        Console.WriteLine(a + ", " + b + ", " + c + ", " + d);
    }

这是我能想到的最接近您要求的内容。

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 2012-08-05
    • 2011-09-27
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多