TDictionary字典 对象的释放。。。
type TRen = record
name: string;
age: Integer;
end; type TPeople = class
private
Fname: string;
Fage: Integer;
procedure Setname(const Value: string);
procedure Setage(const Value: Integer);
published
property name: string read Fname write Setname;
property age: Integer read Fage write Setage;
end; procedure TForm3.Button1Click(Sender: TObject);
var
MyRen: TRen;
MyDic: TDictionary<string,TRen>;
I: Integer;
MyKeyAry: TArray<string>;
MyRen2: TRen;
begin
MyDic := TDictionary<string,TRen>.Create();
try
//---------------------------------------
for I := to do
begin
MyRen.name := '群主'+IntToStr(I);
MyRen.age := I;
MyDic.Add('key'+IntToStr(I),MyRen);
end; //---------------------------------------
MyKeyAry := MyDic.Keys.ToArray;
for I := to MyDic.Count- do
begin
MyRen2 := MyRen;
MyRen2.name := '操蛋'+IntToStr(I);
MyDic.AddOrSetValue(MyKeyAry[I],MyRen2);
end; ShowMessage(MyDic['key1'].name);
finally
MyDic.Free;
end;
end; { TPeople } procedure TPeople.Setage(const Value: Integer);
begin
Fage := Value;
end; procedure TPeople.Setname(const Value: string);
begin
Fname := Value;
end; procedure TForm3.Button2Click(Sender: TObject);
var
MyPeople: TPeople;
MyDic: TObjectDictionary<string,TPeople>;
I: Integer;
MyKeyAry: TArray<string>;
begin
MyDic := TObjectDictionary<string,TPeople>.Create();
try
//---------------------------------------
for I := to do
begin
MyPeople := TPeople.Create;
MyPeople.name := '群主'+IntToStr(I);
MyPeople.age := I;
MyDic.Add('key'+IntToStr(I),MyPeople);
end; //---------------------------------------
MyKeyAry := MyDic.Keys.ToArray;
for I := to MyDic.Count- do
begin
//这里如果是结构就不能这样赋值,如果是对象就可以.
MyDic[MyKeyAry[I]].name := '操蛋'+IntToStr(I);
end; //---------------------------------------
//窗体显示
ShowMessage(MyDic['key1'].name); //---------------------------------------
//用这种方式释放吧,不搞了,以后就用这种方式来.
for I := to MyDic.Count- do
begin
MyDic[MyKeyAry[I]].Free;
end;
finally
MyDic.Free;
end;
end;
TDictionary字典 对象的释放。。。的更多相关文章
- VBS使用Scripting.Dictionary字典对象
Scripting.Dictionary是个很有用的组件,其创建了类似于Key索引对应Value值的字典对象,并且在其内部提供了快速索引访问的机制,可以让我们通过Key直接索引到指定的Value,比遍 ...
- python 基础学习(字典对象,set对象)
1.dict 字典对象 a.定义对象 d={'a':14,'b':12}b.通过key获取value d['a'] 方法1.判断key是否存在 if 'a' in d: d['a']方法2:通过用ge ...
- java 哪些情况下会使对象锁释放
Java_多线程_锁释放 问:Java多线程运行环境中,在哪些情况下会使对象锁释放?答:由于等待一个锁的线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不再需要锁的时候及时释放锁是很重要的 ...
- JavaScript中创建字典对象(dictionary)实例
这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...
- GDI 对象的释放与内存泄漏的问题研究
最近写了一个GDI 绘图的程序,过程中遇到一个奇怪的问题,就是 定时器定时一会GDI绘的图就消失了..后来经过分析,原来是 GDI对象数量过多 ,即GDI对象超过10000个 导致内存泄漏的问题.找到 ...
- Objective-c 字典对象
oc 中的 NSDictionary 的作用同 java 中的字典类相同,提供了 “键-值”对的组合.比如,是用字典类实现对学生姓名和学号的存放,编号是一个键(唯一性),姓名是值.它的方法有: 下面通 ...
- C#+ArcEngine中com对象的释放问题
1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有 ...
- python爬虫requests json与字典对象互相转换
import requests import json ''' json.loads(json_str) json字符串转换成字典 json.dumps(dict) 字典转换成json字符串 ''' ...
- 有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'}
题目:有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'} 第一种方法: d = {'a': 1, 'b': 2}d = {value: k ...
随机推荐
- visual studio cl -d1reportSingleClassLayout查看内存f分布
C:\Users\Administrator\Desktop\cppsrc>cl -d1reportSingleClassLayoutTeacher virtual.cpp 用于 x86 的 M ...
- HOJ_14001 Just Terraffic!
题意相对来说比较扭曲..所以来说下模型,具体做法有兴趣的孩纸去问度娘或者波塞冬吧~~ 给出一个序列长度,并且输入该序列,该序列的含义是横坐标: 任何两个相邻坐标绝对值小于等于1000的必然为一个整体, ...
- 3 View - Request对象
1.HttpReqeust对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象 视图函数的第一个参数是HttpRequest对象 在django.http模块中定义了Htt ...
- CodeForces 768E Game of Stones 打表找规律
题意: 在经典Nim博弈的基础上增加了新的限制:如果从这堆石子中移走\(x\)个石子,那么之后就不能再从这堆移走\(x\)个. 分析: 因为之前的操作会对后面的转移有影响,所以在保存状态时还要记录哪些 ...
- poj2955:Brackets
Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8716 Accepted: 4660 Descript ...
- TCP/IP网络编程之域名及网络地址
域名系统 DNS是对IP地址和域名进行互相转换的系统,其核心是DNS服务器.提供网络服务的服务端也是通过IP地址来区分的,但由于IP地址难于记忆,因此通过容易记忆并表述的域名来取代IP地址 在浏览器地 ...
- java对象转json格式
package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import jav ...
- vue --子父组件传值
1.父组件可以使用 props 把数据传给子组件. 2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( e ...
- 使用 Region,RegionManager 在 XNA 中创建特殊区域(十八)
平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...
- 用Python 3写的一个Spider小爬虫(使用内置urllib模块and正则表达式)
用Python写了一个Spider小爬虫,爬一爬斗鱼“王者荣耀”在线直播的主播及人气