2011-03-16 137 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是一家集則()手段對其進行訪問,並根據給定的索引,否則嘗試調用它作爲一種方法獲得的項目。

相關問題