2011-03-16 103 views
2

我是从传统的ASP来和我所做的:为什么ASP.net使用方括号

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

而在.NET中,它是:

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

当使用了圆形方括号那些?他们是什么意思?我现在有点理解它来代表索引?

+0

我觉得你仍然可以在ASP.NET中使用'()'。 – BoltClock 2011-03-16 11:03:09

+0

@Bolt不起作用.net – 2011-03-16 11:03:57

+0

你仍然可以使用'Request.QueryString.Get(“ID”)' – Alex 2011-03-16 11:06:03

回答

7

由于ASP经典是Visual Basic脚本,它从Visual Basic语法派生。

如果您希望将ASP.NET与“圆括号”一起使用,只需在ASP.NET的代码隐藏中切换到VB.NET。

“圆”或“方”括号是VB.NET和C#中的任意常规语法决定。

更新:我忘了提及ASP Classic也支持JScript,所以ASP经典与JScript将访问数组索引和主要索引器,用“方括号”。但似乎这个问题的作者使用ASP/VBScript :)

2

这是C#和VB之间的区别。

2

这是标准C#语言语法(可以追溯到C和其他语言)的一部分。

方括号[]用于访问数组或集合中的元素(Request.QueryString的情况下为NameValueCollection)。

在数组中,使用数字索引器访问元素,但在集合中,通常可以使用数字索引器或字符串按名称访问元素。

有关C#阵列的教程检查出http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

圆括号()用于包围传递给函数的参数(和调用函数时是必需的,即使该函数没有参数)。

1

添加我的两分钱到马蒂亚斯正确的答案和理查德正确的信息,该Request.Querystring是一个字符串的集合,无论是在传统的ASP和ASP.NET中的那么这一切都归结到你如何访问的项目采集。

C#()被保留以调用在C#,以便具有一个Request.Querystring("ID")方法将尝试调用QuerystringRequest方法传递"ID"作为参数。要访问收集项目,需要使用[],而C#像往常一样严格。

的VBScript更“灵活”,并会自行检查 - 如果QueryString是一家集则()手段对其进行访问,并根据给定的索引,否则尝试调用它作为一种方法获得的项目。

相关问题