Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
.NET 4.x

Соответствие типа данных и значения

02.01.2016, 13:10. Показов 2578. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 строки, одна содержит тип данных, другая значение. Например: "int", "2". Типы могут быть только примитивные. Как проверить что указанное значение может быть представлено в указанном типе. Нужен метод типа:
bool IsMatchValueAndType(string value, string type);
пример работы:
2, int - true
-2 uint - false
abs, int - false
2, string - true.
И так далее. Подскажите пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2016, 13:10
Ответы с готовыми решениями:

Как проверить соответствие типа введённого в Textbox?
Есть класс с типами, информация о типах поступает динамически. Каждому текстбоксу соответствует своё свойство. Нужно проверить соответствие...

Преобразование произвольных данных "типа значения" в строку и обратно
Требуется преобразовать данные "типа значения" (int, float и т.п.) в строку и обратно. В месте преобразования заранее неизвестно какого...

Проверка Входных данных на соответствие
Нужно чтобы если Входной символ Symbol не (+, -,*,/) то компилятор писал об этом как ошибка ? public static L1 Operation(L1 M, Char...

6
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.01.2016, 13:23
Цитата Сообщение от NEvOl Посмотреть сообщение
Типы могут быть только примитивные.
Тут посмотрите.
https://msdn.microsoft.com/ru-... .110).aspx
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
02.01.2016, 13:28  [ТС]
insite2012, не совсем понятно как этим пользоваться в моем случае. У меня тип записан в строке и значение находится в строке, нужно просто проверить соответствие значения и типа.
0
 Аватар для Chernobyl_
46 / 14 / 15
Регистрация: 25.12.2015
Сообщений: 49
02.01.2016, 14:18
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            int int1 = 5;
            uint uint1 = 3;
            bool bool1 = false;
 
            if (int1.GetType() == typeof(int))
                Console.WriteLine("int1 is int");
            else Console.WriteLine("int1 is not int");
 
            if (uint1.GetType() == typeof(uint))
                Console.WriteLine("uint1 is uint");
            else Console.WriteLine("uint1 is not uint");
 
            if (bool1.GetType() == typeof(bool))
                Console.WriteLine("bool1 is bool");
            else Console.WriteLine("bool1 is not bool");
Добавлено через 10 минут
Если из строки:


C#
1
2
3
4
5
6
7
8
9
        string myIntStr = "4000000000";
 
            int myInt2;
            bool int2Parsed;
            int2Parsed = int.TryParse(myIntStr, out myInt2);
 
            if (int2Parsed)
                Console.WriteLine("can be int");
            else Console.WriteLine("cannot be int");
0
20 / 19 / 1
Регистрация: 13.08.2012
Сообщений: 779
02.01.2016, 14:24  [ТС]
Chernobyl_, это не то. Еще раз акцентирую внимание, что название типа данных уже известно! Нужно проверить возможно ли представить данное значение в данном типе.
C#
1
2
3
            var type = "int";
            var value = "1";
            IsMatchValueAndType(value, type);
в данном случае метод должен вернуть true.
C#
1
2
3
            var type = "bool";
            var value = "10";
            IsMatchValueAndType(value, type);
а тут метод должен вернуть false.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
02.01.2016, 14:41
Лучший ответ Сообщение было отмечено NEvOl как решение

Решение

NEvOl, попробуй с помощью Convert.ChangeType
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool IsMatchValueAndType(string value, string type)
{
    if (type == "string") return true;
    
    try
    {
        Type t = null;
        if (type == "int") t = typeof(int);
        else if (type == "uint") t = typeof(uint);
        
        Convert.ChangeType(value, t);
        return true;
    }
    catch {}
    return false;
}
1
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
02.01.2016, 14:48
Можно вообще регулярки использовать, задекларировать паттерны для типов и смотреть с какими есть совпадения.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2016, 14:48
Помогаю со студенческими работами здесь

Проверка вводимых данных на соответствие типа
Задание само очень простое - вычитание матриц, с помощью перегрузки функций (одна функция вычитает типы short, другая long double). ...

Проверка значения на соответствие типу данных
Я получаю из БД значения разных типов данных. Мне надо если тип значения равен Date, то выполнить над ним действие.

Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона
Проблема:При открытии базы данных mssql происходит ошибка :Преобразование типа данных nvarchar в тип данных datetime привело к выходу...

Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона
Здравствуйте. помогите пожалуйста. что может привести к этой ошибке(ошибка в заголовке темы)? DECLARE @counter int, ...

Не соответствие типа
Надо создать запись с именем Note, содержащую следующие поля: -фамилия, имя -номер телефона -день рождения(массив из трех символов) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru