Задать вопрос
@neznae4ko
Программирую, разрабатываю, печатаю, паяю и создаю

Что это за конструкция public T GetService() where T: class { throw new NotImplementedException(); } в C#?

Пытаюсь разобраться в программе на C#, но не знаю именно шарпов, и не писал для Win.

что Это за конструкция в общем,
и где можно почитать о том что такое:
1) GetService
2)
T
        public T GetService<T>() where T : class
        {
            throw new NotImplementedException();
        }
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
lexxpavlov
@lexxpavlov
Программист, преподаватель
Это объявление обобщённого метода, в котором тело не определено.
В этом коде три разных концепции:
1) это объявление метода GetService без аргументов и с возвращаемым типом T
2) В качестве возвращаемого типа стоит T - это обобщённый (generic) тип, реальный тип будет указан при вызове метода. Слово where указывает ограничение - реальным типом должен быть класс.
Например, можно указать MyService x = GetSevice<MyService>(); или Person x = GetSevice<Person>(); или IWeapon x = GetSevice<IWeapon>();.
3) в качестве тела метода стоит throw new NotImplementedException(); - возникнет исключение, указывающее, что тело не определено. Так делается, если нужно показать, что этот код вызывать не нужно, либо если тело будет написано позже, а сейчас при вызове будет исключение.
Ответ написан
oxyberg
@oxyberg
Продуктовый дизайнер ВКонтакте
T — плейсхолдер для типа. А про конструкцию на сайте майкрософта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы