【问题标题】:Why does ASP.net use square brackets为什么 ASP.net 使用方括号
【发布时间】:2011-03-16 10:59:46
【问题描述】:

我来自经典 ASP,我做到了:

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

在 .net 中是:

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

什么时候使用方括号而不是圆括号?它们意味着什么?我现在有点理解它来表示索引?

【问题讨论】:

  • 我认为你仍然可以在 ASP.NET 中使用()
  • @Bolt 在 .net 中不起作用
  • 你仍然可以使用Request.QueryString.Get("ID")

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        括号() 用于包围传递给函数的参数(调用函数时需要,即使该函数不接受任何参数)。

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            将我的两分钱添加到 Matías 正确答案和 Richard 正确信息中,Request.Querystring 是经典 ASP 和 ASP.NET 中的字符串集合,因此这一切都取决于您如何访问集合项。

            C# 中,() 被保留用于调用方法,因此在 C# 中使用 Request.Querystring("ID") 将尝试调用 Querystring 作为 Request 的方法,并将 "ID" 作为参数传递。要访问集合项,则需要 [] - 而 C# 对它一如既往地严格。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-10-13
              • 1970-01-01
              • 1970-01-01
              • 2019-08-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多