VB.NET/ASP.NET с новым ключевым словом - PullRequest
4 голосов
/ 27 июня 2009

Может кто-нибудь объяснить, как New работает с ключевым словом With в этом примере из инфраструктуры MVC.

routes.MapRoute("Default", 
                "{controller}/{action}/{id}", 
                New With {.controller = "Home", .action = "Index", .id = ""})

Ответы [ 3 ]

2 голосов
/ 27 июня 2009

Этот синтаксис используется для создания анонимного типа в VB.Net.

Позволяет определять тип на лету с помощью набора пар имя / значение. Все имена превращаются в свойства типа. Если вы откроете сгенерированную сборку в отражателе, вы сможете увидеть эти типы.

Не позволяйте части с синтаксисом обмануть вас. Эта функция не имеет ничего общего с контекстной функцией «С» в VB.Net. Кроме "." префикс в именах значений.

1 голос
/ 27 июня 2009

Здесь "new" объявляет анонимный класс.

Этот класс не имеет формального определения (т. Е. Нет определения "Public Class"), его структура определяется элементами в фигурных скобках после символа with. Таким образом, он определяет и создает класс в одном выражении.

1 голос
/ 27 июня 2009

Создает новый анонимный класс с указанными свойствами.

Дополнительная информация от MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...