ASP.net 中该表达式的编程含义是什么?
List<int> productsInCart = (List<int>)Session["cart"];
提前致谢..
ASP.net 中该表达式的编程含义是什么?
List<int> productsInCart = (List<int>)Session["cart"];
提前致谢..
这不是一种ASP.NET
语法,而是C#
一种。
Session
看起来是一个关联数组,其索引类型为string
。["cart"]
是索引,即通过它的索引或“地址”访问数组元素,这里是类型string
。可能您更了解术语“键值存储”,而不是“关联数组”。术语含义相同。
虽然为 Session 定义了 index 类型,但它的内容类型看起来被定义为object
,即一个类型,它可以容纳任何类型的对象。
List<int> productsInCart
是名称productsInCart
和类型变量的定义List<int>
。这种类型意味着变量包含整数值的列表(即非固定长度数组)。可能这些值是商品的 id。
(List<int>)
是类型转换,这C#
意味着只是检查,object
从Session
数组中检索的 an 实际上是 type List<int>
。
在C#
任何子类型中都可以分配给超类型变量而无需检查。例如,List<int>
变量可以分配给object
。这总是可能的,并且不需要强制转换。反向分配并非总是可行的。只有那些onject
s 可以分配给List<int>
实际上具有这种类型的变量。因此需要显式类型转换,如果类型不正确,它将作为异常源。
此表达式是creating
int 类型的列表,来自 Session 中的现有列表对象,该对象在分配之前key cart
进行类型转换list<int>
。
Session["cart"]
Session 是一个持有对象的集合,持有Session["cart"]
对象的键名是cart。
(List<int>)
用于类型转换返回的对象Session["cart"]
List<int> productsInCart
创建类型的对象List<int>
编码
(List<int>)
是类型转换。这意味着它正在转换
Session["cart"]
进入整数类型列表并将该列表保存在 productInCart 列表中。