Почему ASP.net использует квадратные скобки - PullRequest
2 голосов
/ 16 марта 2011

Я пришел из классического ASP и сделал:

myVar = request.querystring("ID")
response.redirect("lol.asp");

А в .net это:

myVar = Request.Querystring["ID"];
Response.Redirect("lol.aspx");

Когда квадратные скобки используются над круглыми? Что они означают? Я сейчас как-то понимаю, чтобы представить индекс?

Ответы [ 6 ]

7 голосов
/ 16 марта 2011

Поскольку ASP Classic - это скрипт Visual Basic, который является производным от синтаксиса Visual Basic.

Если вы хотите использовать ASP.NET с «круглыми скобками», просто переключитесь на VB.NET в кодовом компоненте ASP.NET.

«Круглые» или «квадратные» скобки являются произвольным, общепринятым синтаксическим решением в VB.NET и C #.

ОБНОВЛЕНИЕ: я забыл упомянуть, что ASP Classic также поддерживает JScript, поэтому ASP classic с JScript будет иметь доступ к индексам массивов и, главным образом, индексаторам, с помощью "квадратных скобок". Но, похоже, автор вопроса работал с ASP / VBScript:)

3 голосов
/ 16 марта 2011

Квадратные скобки используются для объявления и доступа к массиву с количеством элементов или индексом.

http://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx

2 голосов
/ 16 марта 2011

Это часть стандартного синтаксиса языка C # (который можно проследить до C и других языков).

Квадратные скобки [] используются для доступа к элементу в массиве или коллекции (a NameValueCollection в случае Request.QueryString).

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

Для учебника по массивам C # посмотрите http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

Круглые скобки () используются для окружения аргументов, переданных функции (и требуются при вызове функции, даже если эта функция не принимает аргументов).

2 голосов
/ 16 марта 2011

Это разница между C # и VB.

1 голос
/ 17 марта 2011

Добавляя два моих цента к правильному ответу Матиаса и правильной информации Ричарда, Request.Querystring - это набор строк, как в классическом ASP, так и в ASP.NET, поэтому все сводится к тому, как вы получаете доступ к элементу коллекции.

В C # () сохраняется для вызова метода, поэтому Request.Querystring("ID") в C # будет пытаться вызвать Querystring как метод Request, передав "ID" в качестве аргумента. Чтобы получить доступ к элементам коллекции, вместо этого требуется [] - и C #, как обычно, строго к этому относится.

VBScript более «гибкий» и сам проверит - если QueryString является коллекцией, то () означает доступ к ней и получение элемента в соответствии с заданным индексатором, в противном случае попробуйте вызвать его как метод.

1 голос
/ 16 марта 2011

Это старая статья, но она предлагает сравнение некоторых различий между VB.NET и C #.

Создание массивов управления в Visual Basic .NET и Visual C # .NET

...