powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Узнать числовой ли DataType c#
4 сообщений из 4, страница 1 из 1
Узнать числовой ли DataType c#
    #39307106
arCHi_1887
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть DataColumn.DataType, необходимо определить - он числовой, строковый, либо дата.

Сейчас проверяю так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Type vTmpType = <somedatacolumn>.DataType;
if ((vTmpType.Name == "Byte")||
    (vTmpType.Name == "Decimal")||
    (vTmpType.Name == "Double") ||
    (vTmpType.Name == "Int16") ||
    (vTmpType.Name == "Int32") ||
    (vTmpType.Name == "Int64") ||
    (vTmpType.Name == "Single") ||
    (vTmpType.Name == "UInt16") ||
    (vTmpType.Name == "UInt32") ||
    (vTmpType.Name == "UInt64") ||
    (vTmpType.Name == "SByte"))
   MessageBox.Show("decimal");
else 
    if (vTmpType.Name == "DateTime")
        MessageBox.Show("datetime");
    else
        MessageBox.Show("string");


Как сделать нормально?
...
Рейтинг: 0 / 0
Узнать числовой ли DataType c#
    #39307533
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arCHi_1887, да только так и узнать, только такой код чище будет:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public static bool IsNumeric(this object obj)
{   
  switch (Type.GetTypeCode(obj.GetType()))
  {
    case TypeCode.Byte:
    case TypeCode.SByte:
    case TypeCode.UInt16:
    case TypeCode.UInt32:
    case TypeCode.UInt64:
    case TypeCode.Int16:
    case TypeCode.Int32:
    case TypeCode.Int64:
    case TypeCode.Decimal:
    case TypeCode.Double:
    case TypeCode.Single:
      return true;
    default:
      return false;
  }
}
...
Рейтинг: 0 / 0
Узнать числовой ли DataType c#
    #39307534
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а со строкой и датой по аналогии.
...
Рейтинг: 0 / 0
Узнать числовой ли DataType c#
    #39308098
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё так попробовать.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    class Program
    {
        static void Main(string[] args)
        {
            var b1 = IsNumberType(typeof(string)); // false
            var b2 = IsNumberType(typeof(int)); // true
            var b3 = IsNumberType(typeof(double)); // true
        }

        static bool IsNumberType(Type type)
        {
            return TypeDescriptor.GetConverter(type).CanConvertTo(typeof(double));
        }
    }
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Узнать числовой ли DataType c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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