2012-12-09 22 views

回答

0

該表達式是creating int類型的列表,從現有列表對象,它是在會話與key cart被類型轉換爲list<int>分配之前。

  • Session["cart"]會議是持有對象,具有鍵名購物車Session["cart"]保持對象的集合。

  • (List<int>)用於類型強制轉換的對象在由Session["cart"]

  • List<int> productsInCart創建的類型List<int>

+0

然後我們有一個名爲productInCart的會話[「cart」]的列表 –

+0

對於會話集合來說,它是對象,可以存儲對象,可以是列表,數組,對象或某個字符串。您分配了從Session [「Cart」]檢索到的對象,它取決於您存儲Session的內容,但確定您將獲得要存儲的內容。 – Adil

0

代碼

(List<int>) 

的對象返回是類型鑄造。這意味着它轉換

Session["cart"] 

到整數類型的列表,並保存在productInCart列表清單。

2

這不是一個ASP.NET語法,但C#之一。

Session看起來是一個關聯數組索引爲string型。 ["cart"]被索引通過它的索引或「地址」,在這裏是string類型,即訪問數組元素。也許你知道更好的術語「鍵值存儲」,而不是「關聯數組」。這些術語的含義相同。

雖然索引類型爲Session定義的很好,但它的內容類型看起來被定義爲object,即一個可以容納任何類型對象的類型。

List<int> productsInCart是名稱productsInCart和類型List<int>的變量的定義。這種類型意味着變量包含一個整數值的列表(即非固定長度數組)。這些值可能是商品的ID。

(List<int>)是類型轉換這意味着C#只是一個檢查,即,將其從Session陣列retrived一個object,實際上List<int>型的是。

C#任何亞型可以被分配給超類型變量而不檢查。例如,List<int>變量可以分配給object。這總是可能的,並且不需要鑄造。反向分配並不總是可能的。只有那些onject s時,可以分配給List<int>變量,究竟是誰擁有這種類型。所以顯式類型轉換是必需的,如果類型不正確,它將作爲異常源。

相關問題