Преобразование общего типа из строки

Открытие файла непосредственно в браузере не будет работать, так как браузер не может выполнить код PHP, вы обходите стек LAMP таким образом.

Вместо этого вы захотите получить доступ к стеку LAMP, выбрав http: // localhost

221
задан CRABOLO 7 September 2014 в 08:16
поделиться

4 ответа

Я не уверен, понял ли я Ваши намерения правильно, но давайте посмотрим, помогает ли этот.

public class TypedProperty<T> : Property where T : IConvertible
{
    public T TypedValue
    {
        get { return (T)Convert.ChangeType(base.Value, typeof(T)); }
        set { base.Value = value.ToString();}
    }
}
358
ответ дан Wahid Bitar 23 November 2019 в 04:05
поделиться

Для многих типов (целое число, дважды, DateTime и т.д.), существует статический метод Синтаксического анализа. Можно вызвать его с помощью отражения:

MethodInfo m = typeof(T).GetMethod("Parse", new Type[] { typeof(string) } );

if (m != null)
{
    return m.Invoke(null, new object[] { base.Value });
}
13
ответ дан Markus Safar 23 November 2019 в 04:05
поделиться

Вы могли возможно использовать конструкцию такой в качестве класс черт. Таким образом у Вас был бы параметризованный класс помощника, который знает, как преобразовать строку в значение ее собственного типа. Тогда Ваш метод get мог бы быть похожим на это:

get { return StringConverter<DataType>.FromString(base.Value); }

Теперь, я должен указать, что мой опыт с параметризованными типами ограничен C++ и его шаблонами, но я предполагаю, что существует некоторый способ сделать тот же вид вещи с помощью дженериков C#.

3
ответ дан Greg Hewgill 23 November 2019 в 04:05
поделиться

метод Любоса хаско не работает для значений NULL. Приведенный ниже метод будет работать для значений NULL. Однако я не придумал этого. Я нашел его через Google: http://web.archive.org/web/20101214042641/http://dogaoztuzun.com/post/C-Generic-Type-Conversion. aspx Кредит "Тунец Токсоз"

Использование первое:

TConverter.ChangeType<T>(StringValue);  

Класс ниже.

public static class TConverter
{
    public static T ChangeType<T>(object value)
    {
        return (T)ChangeType(typeof(T), value);
    }

    public static object ChangeType(Type t, object value)
    {
        TypeConverter tc = TypeDescriptor.GetConverter(t);
        return tc.ConvertFrom(value);
    }

    public static void RegisterTypeConverter<T, TC>() where TC : TypeConverter
    {

        TypeDescriptor.AddAttributes(typeof(T), new TypeConverterAttribute(typeof(TC)));
    }
}
69
ответ дан 23 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: