powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Convert.ChangeType - убрать обработку Exception
3 сообщений из 3, страница 1 из 1
Convert.ChangeType - убрать обработку Exception
    #38754405
Anton.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Есть простой код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
protected virtual bool ParseNodeId(string id, out TK parsed)
        {
            parsed = default(TK);
            if (string.IsNullOrEmpty(id)) return false;
            try
            {
                parsed = (TK)Convert.ChangeType(id, typeof(TK));
            }
            catch (Exception)
            {
                return false;
            }            
            return true;
        }



не нравится то что перехватывается исключение чтобы отловить невозможность изменения типа. Как проще всего от этого избавиться?
...
Рейтинг: 0 / 0
Convert.ChangeType - убрать обработку Exception
    #38754429
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton.,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 protected virtual bool ParseNodeId<TK>(string id, out TK parsed)
        {
            parsed = default(TK);
            if (string.IsNullOrEmpty(id)) return false;
            var typeCode = Type.GetTypeCode(typeof(TK));
            if (!(parsed is IConvertible) || typeCode == TypeCode.Empty || typeCode == TypeCode.Object)
                return false;
            parsed = (TK)Convert.ChangeType(id, typeof(TK));
            return true;
        }
...
Рейтинг: 0 / 0
Convert.ChangeType - убрать обработку Exception
    #38754462
Anton.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
Спасибо за ответ, но увы :( Вот такой код d cnhjrt Convert.ChangeType сгенерирует FormatException

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class TestConvert
    {
        public virtual bool ParseNodeId<TK>(string id, out TK parsed)
        {
            parsed = default(TK);
            if (string.IsNullOrEmpty(id)) return false;
            var typeCode = Type.GetTypeCode(typeof(TK));
            if (!(parsed is IConvertible) || typeCode == TypeCode.Empty || typeCode == TypeCode.Object)
                return false;
            parsed = (TK)Convert.ChangeType(id, typeof(TK));
            return true;
        }
    }
	
void Main()
{
	var tk = new TestConvert();
	int parsedInt;
	bool result = tk.ParseNodeId<int>("aaa", out parsedInt);	
	Console.WriteLine (result);
	Console.WriteLine (parsedInt);
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Convert.ChangeType - убрать обработку Exception
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]