0

ASP.net 中该表达式的编程含义是什么?

List<int> productsInCart = (List<int>)Session["cart"];

提前致谢..

4

3 回答 3

2

这不是一种ASP.NET语法,而是C#一种。

Session看起来是一个关联数组,其索引类型为string["cart"]是索引,即通过它的索引或“地址”访问数组元素,这里是类型string。可能您更了解术语“键值存储”,而不是“关联数组”。术语含义相同。

虽然为 Session 定义了 index 类型,但它的内容类型看起来被定义为object,即一个类型,它可以容纳任何类型的对象。

List<int> productsInCart是名称productsInCart和类型变量的定义List<int>。这种类型意味着变量包含整数值的列表(即非固定长度数组)。可能这些值是商品的 id。

(List<int>)是类型转换,这C#意味着只是检查,objectSession数组中检索的 an 实际上是 type List<int>

C#任何子类型中都可以分配给超类型变量而无需检查。例如,List<int>变量可以分配给object。这总是可能的,并且不需要强制转换。反向分配并非总是可行的。只有那些onjects 可以分配给List<int>实际上具有这种类型的变量。因此需要显式类型转换,如果类型不正确,它将作为异常源。

于 2012-12-09T18:06:30.997 回答
1

此表达式是creatingint 类型的列表,来自 Session 中的现有列表对象,该对象在分配之前key cart进行类型转换list<int>

  • Session["cart"]Session 是一个持有对象的集合,持有Session["cart"]对象的键名是cart。

  • (List<int>)用于类型转换返回的对象Session["cart"]

  • List<int> productsInCart创建类型的对象List<int>

于 2012-12-09T17:33:08.583 回答
0

编码

  (List<int>)

是类型转换。这意味着它正在转换

  Session["cart"]

进入整数类型列表并将该列表保存在 productInCart 列表中。

于 2012-12-09T17:40:04.200 回答