Было бы полезно, если бы вы могли определить, какие именно части сбивают вас с толку.Я выбрал два, я думаю, наиболее вероятных на основе вашего вопроса, и объяснил их.Если есть какой-либо другой синтаксис, который вас смущает, пожалуйста, отредактируйте ваш вопрос, чтобы объяснить, какой.
Пояснение к where T : IViewEngine, new()
C # позволяет вам наложить ограничения на общийпараметры типа.Вы можете прочитать больше об ограничениях здесь .
В вашем конкретном случае where T : IViewEngine
означает, что любой тип T
должен быть потомком типа IViewEngine
.where T : new()
- это специальный синтаксис, который указывает, что любой тип T
должен иметь конструктор по умолчанию.
Пояснение к this ViewEngineCollection ves
Ключевое слово this
означает, что метод AddMobile
является методом расширения класса ViewEngineCollection
.Это означает, что в дополнение к тому, что он называется AddMobile(someViewEngineCollection, ...)
, он может называться someViewEngineCollection.AddMobile(...)
.Вы можете прочитать больше о методах расширения здесь .