Разбираюсь в исходниках Asp.Net встретил следущую конструкцию
public class OAuthMiddleware<TOptions> : AuthenticationMiddleware<TOptions>
where TOptions : OAuthOptions, new()
{
public OAuthMiddleware()
{
//code here...
}
}
Класс OAuthMiddleware наследует класс AuthenticationMiddleware и new()
Возникло три вопроса.
new() - это анонимный класс? OAuthMiddleware Ваш тип OAuthMiddleware — это обобщённый тип (generic) с параметром TOptions, и то, что после where — это ограничения на этот самый тип-параметр вашего обобщённого типа.
where TOptions : OAuthOptions, new()
означает, что тип TOptions должен
OAuthOptions, иДля чего может понадобиться ограничение new()? Например, в коде класса можно будет создать экземпляр этого типа:
TOptions opt = new TOptions();
Без ограничения на существование такого конструктора этот код невозможно было бы скомпилировать.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости