using System;
using System.ComponentModel;

namespace HandyControl.Tools.Extension;

public static class StringExtension
{
    public static T Value<T>(this string input)
    {
        try
        {
            return (T) TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input);
        }
        catch
        {
            return default;
        }
    }

    public static object Value(this string input, Type type)
    {
        try
        {
            return TypeDescriptor.GetConverter(type).ConvertFromString(input);
        }
        catch
        {
            return null;
        }
    }
}
