不能保证!
以下的简单测试程序可以证明这点
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
// 定义一个类
class Person
{
public string Name;
public int Age;
}
class Program
{
static void Main(string[] args)
{
// 创建集合并向集合中添加一些元素
List<Person> list = new List<Person>();
list.Add(new Person { Name = "Li", Age = 23 });
list.Add(new Person { Name = "Xu", Age = 21 });
list.Add(new Person { Name = "Jin", Age = 24 });
// p0引用集合元素0
Person p0 = list[0];
// p1引用集合元素1
Person p1 = list[1];
// 清除集合
list.Clear();
// 集合清除后,p0和p1仍然有效,所以以下语句可以输出,不会出错
Console.WriteLine(p1.Name);
Console.WriteLine(p2.Name);
}
}
}
结论:单纯清除集合元素,不能保证内存不泄漏。能否彻底释放对象,关键在于对这个对象的引用次数是否为零!在上面的程序中,集合虽然被清除了,但原来集合中元素0和元素1仍然被p0和p1引用着,所以,两个对象依然有效
是真的,2015年6月9日苹果公司在WWDC15 中首次提出 ATS (App Transport Security),2016年6月14日苹果公司在WWDC16中在此声明将持续收紧ATS限制策略,同年苹果公司宣布2017年1月1日,全面启动ATS限制策略,强制使用HTTPS加密传输。不过在2016年12月的时候,苹...
点击进入详情页
本回答由
天威诚信电子商务服务
提供