为什么ASP.net使用方括号

时间:2011-03-16 10:59:47

标签: c# asp.net asp-classic code-formatting

我来自经典的ASP而且我做过:

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

在.net中是:

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

方括号何时用于圆形?它们意味着什么?我现在有点理解它代表一个索引?

6 个答案:

答案 0 :(得分:7)

因为ASP Classic是Visual Basic脚本,它源自Visual Basic语法。

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

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

更新:我忘了提到ASP Classic也支持JScript,因此使用JScript的ASP classic可以使用“方括号”访问数组索引和主要是索引器。但似乎该问题的作者使用ASP / VBScript:)

答案 1 :(得分:3)

方括号用于声明和访问具有元素计数或索引的数组。

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

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

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

有关C#数组的教程,请查看http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

括号()用于包围传递给函数的参数(在调用函数时是必需的,即使该函数不带参数)。

答案 4 :(得分:1)

这是一篇旧文章,但它确实比较了VB.NET和C#之间的一些差异。

Creating Control Arrays in Visual Basic .NET and Visual C# .NET

答案 5 :(得分:1)

将我的两分钱加到Matías的正确答案和Richard正确的信息中,Request.Querystring是字符串的集合,在经典ASP和ASP.NET中都是如此,所以这一切都归结为你如何访问集合项。

C#中保留()以调用方法,因此在C#中使用Request.Querystring("ID")会尝试调用Querystring作为Request的方法传递"ID"作为参数。要访问集合项,需要使用[] - 而C#与往常一样严格。

VBScript 更“灵活”,并将自行检查 - 如果QueryString是一个集合,那么()表示访问它并根据给定获取项目indexer否则尝试将其作为方法调用。