«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можно ли использовать TryParse для проверки общего типа в C#?

Можно ли использовать TryParse для проверки общего типа в C#?

Опубликовано в 2025-03-12
Просматривать:105

Can `TryParse` Be Used for Generic Type Validation in C#?

расширяющий валидацию общего типа с 'tryparse'

с целью проверки, придерживается ли данная строка для предварительно определенного типа, предпринимается попытка разработать общее расширение, используя 'tryparse'. Тем не менее, эти усилия столкнулись с препятствием для компиляции, поскольку «Tryparse» остается неразрешенным.

суть этого вопроса заключается в том, что «Tryparse» не инкапсулируется в любом узнаваемом границе раздела. Следовательно, возникает вопрос относительно осуществимости такой реализации.

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

public static T Convert(this string input)
{
    try
    {
        var converter = TypeDescriptor.GetConverter(typeof(T));
        if (converter != null)
        {
            // Cast ConvertFromString(string text) : object to (T)
            return (T)converter.ConvertFromString(input);
        }
        return default(T);
    }
    catch (NotSupportedException)
    {
        return default(T);
    }
}

] Этот обновленный подход может похвастаться несколькими преимуществами:

    ]
  • . Универсальность.
  • , в конечном счете, это пересмотренное решение эффективно решает начальную задачу, предоставляя средства для определения достоверности данной входной строки против предопределенного типа.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3