我来自经典的ASP而且我做过:
myVar = request.querystring("ID")
response.redirect("lol.asp");
在.net中是:
myVar = Request.Querystring["ID"];
Response.Redirect("lol.aspx");
方括号何时用于圆形?它们意味着什么?我现在有点理解它代表一个索引?
答案 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否则尝试将其作为方法调用。