gpt4 book ai didi

c# - 堆谜语中的对象

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:43 24 4
gpt4 key购买 nike

在下面的代码中ViewState["L"]存储 List<string> .我创建了 List 的新实例并将 View 状态的转换值分配给它。

List<string> myList = new List<string>();

myList=(List<string>)ViewState["L"];

Response.Write(myList.Equals(ViewState["L"]));// returns True

如您所见,.Equals()方法告诉我 Viewstate 对象和 List 对象是相同的。现在我要问你们的问题是List怎么能和一个 Viewstate是对同一对象的引用?该位置的堆内存实际上保存了什么?

更新下面的代码演示了任何被分配了 View 状态的转换值的变量都指向同一个对象。

   List<string> myList1 = new List<string>();
myList1.Add("apple");
ViewState["L"] = myList1;

List<string> myList2 = new List<string>();
myList2 = (List<string>)ViewState["L"];

List<string> myList3 = new List<string>();
myList3 = (List<string>)ViewState["L"];;

myList3.Add("orange");//Here myList2 gets an orange too !

我认为,Thomas 是对的。

最佳答案

how can a List and a Viewstate be a reference to the same object?

它不是“一个 ViewState”,而是 ViewState 的一个元素。 ViewState["L"]返回一个实际上是 List<string> 的对象(与您刚刚分配给 myList 的相同)

关于c# - 堆谜语中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com