Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 01.04.2020
Сообщений: 4

Рефлексия, оператор typeof()

05.10.2020, 02:24. Показов 7236. Ответов 7

Студворк — интернет-сервис помощи студентам
Объясните (или подскажите литературу) как в действительности работает оператор typeof(). Цитата с msdn "Оператор typeof получает экземпляр System.Type для указанного типа.". Что значит получает экземпляр System.Type? Type это ведь абстрактный класс, а значит экземпляр такого класса создать нельзя (ну или нельзя создать явно). У меня было предположение что typeof создает экземпляр указанного типа и приводит его к Type, но как выяснилось пользовательские классы по умолчанию не наследуются от Type. Так что же в действительности делает оператор typeof ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2020, 02:24
Ответы с готовыми решениями:

Typeof
В вижуал не определяется идентификатор typeof. Срочно нужно решить проблему с исправлением этой строчки: struct Consume *ap =...

Decltype и typeof
Товарищи. Возникла проблема с пониманием std++11. Насколько я понимаю typeof более не поддерживается. Сегодня познакомился с...

Typeof: string parameter
Всё очень просто. Каким образом корректно вызвать такой код: string className = "myClass"; Type type = typeof(className );...

7
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18288 / 14211 / 5368
Регистрация: 17.03.2014
Сообщений: 28,889
Записей в блоге: 1
05.10.2020, 09:15
Лучший ответ Сообщение было отмечено MaslenokCsharp как решение

Решение

MaslenokCsharp, здесь работает наследование. typeof и GetType возвращают экземпляр типа унаследованного от Type. Если посмотреть полное имя типа, то мы увидим System.RuntimeType
C#
1
2
Type t = typeof(string);
Console.WriteLine(t.GetType().FullName); // "System.RuntimeType"
2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.10.2020, 09:37
Цитата Сообщение от MaslenokCsharp Посмотреть сообщение
Type это ведь абстрактный класс, а значит экземпляр такого класса создать нельзя
Наследование определяет отношение "является" — любой наследник класса А является классом А.
Экземпляр любого типа, унаследованного от абстрактного Type, является экземпляром типа Type.
2
0 / 0 / 0
Регистрация: 01.04.2020
Сообщений: 4
05.10.2020, 14:05  [ТС]
Хмм, действительно так, только вот я описание класса System.RuntimeType в msdn найти не могу.
0
Пора на C++?
 Аватар для TrickyBestia
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
05.10.2020, 15:56
Цитата Сообщение от MaslenokCsharp Посмотреть сообщение
только вот я описание класса System.RuntimeType в msdn найти не могу.
А зачем оно вам?
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
05.10.2020, 17:14
Цитата Сообщение от MaslenokCsharp Посмотреть сообщение
описание класса System.RuntimeType в msdn найти не могу
В msdn пишется только то, что нужно для использования данного класса, а именно public-данные. Там же ведь не пишется какова логика внутри, например, метода. Там пишется только то - что он делает и как им пользоваться.
Все остальное надо смотреть в исходнике. Там вы и найдете тот самый класс. Хотя вряд ли вам эта информация поможет.
2
0 / 0 / 0
Регистрация: 01.04.2020
Сообщений: 4
06.10.2020, 22:09  [ТС]
Спасибо, весьма полезную вы мне информацию предоставили. Конечно я все еще не понимаю принцип работы этого оператора. Буду разбираться дальше)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,087
Записей в блоге: 2
07.10.2020, 10:47
Цитата Сообщение от MaslenokCsharp Посмотреть сообщение
я описание класса System.RuntimeType в msdn найти не могу
internal class RuntimeType
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2020, 10:47
Помогаю со студенческими работами здесь

Typeof Generic Class
Всем привет. Играюсь с архетиктурой. Есть контроллеры (сингелтоны, то есть Активатор Create Instance не работает (хотя глубоко не...

Имитация typeof в C/C++ коде
Можно ли считать, что следующие макросы полностью имитируют typeof через decltypeof и в случае подключения хеадера компилятором С и в...

Type.GetType вместо typeof()
Приветствую. Получаю System.Type через typeof(NameClass). Но необходимо получать тип по значению из строковой переменной, т.е....

Имя встроенного типа из typeof
Добрый день, вопрос банально прост если мы имеем: System.Type type = typeof(int); то как из type => получить значение...

Возможен ли метод с типом Task<typeof(y)>
Не подскажите, как написать что нибуть такое: public Task&lt;typeof(y)&gt; X (Type y) { return 1 as y; } Что бы можно было...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru