Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399

Метод, который бы отражал тип данных переданного объекта

05.10.2014, 20:35. Показов 657. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Метод, который бы отражал тип данных переданного объекта и инициализировал его доступные поля и свойства значениями, вводимыми пользователем.
Приложение должно выводить имя поля и тип данных этого поля, валидировать введённые пользователем значения, если они не валидны, то запрашивать новые, после чего присваивать введённые значения соответствующим полям.
Инициализировать необходимо только поля базовых типов данных.

Кто понимает что тут требуется подскажите.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2014, 20:35
Ответы с готовыми решениями:

прогресс бар, который отражал бы действительное положение дел
ВСЕМ привет, при длительном выполнении скрипта белый экран браузера выглядит не хорошо, как в таком случае организовать прогресс бар,...

Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов?
Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов? Если есть то как он называется ?

Изменить тип объекта, на который указывает this
Такой вопрос: у меня есть иерархия классов - у предка 4 потомка. Каждый "потомок" имеет свой рисунок, им они и отличаются друг от...

3
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
05.10.2014, 21:35
Tsyklop, стоит смотреть в сторону рефлексии
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class A
{
    public int I;
    public string Name { get; set; }
}
private static void Main(string[] args)
{
    var a = new A();
    Init(a);
    Console.ReadKey();
}
static object Init(object  obj)
{
    var type = obj.GetType();
    var accepted = new[] {typeof (string), typeof (int), typeof (double)};
    var props = type.GetProperties().Where(p => p.CanWrite && accepted.Contains(p.PropertyType));
    foreach (var prop in props)
    {
        prop.SetValue(obj, GetValue(prop.PropertyType, prop.Name));
    }
    var fields = type.GetFields().Where(f => f.IsPublic && accepted.Contains(f.FieldType));
    foreach (var field in fields)
    {
        field.SetValue(obj, GetValue(field.FieldType, field.Name));
    }
    return obj;
}
 
static object GetValue(Type type, string name)
{
    if (type == typeof (string))
    {
        Console.Write("Введите строку {0}:",name);
        return Console.ReadLine();
    }
    if (type == typeof(int))
    {
        Console.Write("Введите целое число {0}:", name);
        return int.Parse(Console.ReadLine());
    }
    if (type == typeof(string))
    {
        Console.Write("Введите дробное число {0}:", name);
        return double.Parse(Console.ReadLine());
    }
    return null;
}
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
05.10.2014, 21:41  [ТС]
Цитата Сообщение от rattrapper Посмотреть сообщение
стоит смотреть в сторону рефлексии
я так понимаю что нужно показать какой тип мы ввели?
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
05.10.2014, 22:08
Цитата Сообщение от Tsyklop Посмотреть сообщение
нужно показать какой тип мы ввели
можно, добавив
C#
1
Console.WriteLine("Инициализация типа {0}", type.Name);
после 15-ой строки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2014, 22:08
Помогаю со студенческими работами здесь

Как изменить тип объекта, на который указывает указатель?
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class Child1 : public Base {

Абстрактный класс. Виртуальный метод, который возвращает T- тип
Привет! Допустим, есть абстрактный класс, и метод, который возвращает T-тип. class A { public: template <class T>...

Как сделать, чтобы метод возвращал универсальный тип объекта
Помогите!!! Может вообще все по другому сделать надо, но идея такая: public ObjectSet<??????> TypeResults(Type typeResults,...

Тип менее доступен чем метод который его возвращает
Здравствуйте. Сталкиваюсь не первый раз с такой ошибкой, убрать public не всегда удобно. В чем суть этой ошибки и какие ещё решения у неё...

Как создать метод с использованием объекта другого метода, который определен в другом классе
В общем суть вот в чем: У меня есть 2 класса. 1 основный(Program) в нем в методе Main создается объект метода из 2-го класса. И в этом...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru