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 ...
随机推荐
- windows Server 2008 r2-搭建FTP服务器
FTP协议介绍 FTP协议工作在OSI参考模型的第七层,TCP模型的第四层上(即应用层上).使用FTP传输而不是UDP,与服务端建立连接经过三次握手. FTP端口介绍 FTP默认端口是21,.(21端 ...
- Python之路--Python初识
Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程 ...
- Pycharm中F4查看函数的相关小BUG
我们都知道在Pycharm中我们要快速查看某个函数或者模块的源码,可以在该函数上按F4快捷键,其可以打开源码相关的.py文件,这两天偶然发现起打开的文件不一定是对的. -代码如下: import os ...
- Service IntentService区别 (面试)
依然记得自己当初没有真正的工作经验的时候的日子,满北京跑,没有人要.妈的,现在就想问,还有谁!想想真解气.不提了. 曾经有个面试官问我service 和IntentService的区别.当时自己模模糊 ...
- 设计模式之第16章-代理模式(Java实现)
设计模式之第16章-代理模式(Java实现) “现在朋友圈真是太让人蛋疼了啊.”“怎么说?”“一堆代理,各种卖东西的,看着好烦人.”“哎,删了呗.”“都是朋友,哪里好意思删啊.”“这倒也是...哎,迫 ...
- IOS开发---菜鸟学习之路--(十八)-利用代理实现向上一级页面传递数据
其实我一开始是想实现微信的修改个人信息那样的效果 就是点击昵称,然后跳转到另外一个页面输入信息 但是细想发现微信的话应该是修改完一个信息后就保存了 而我做的项目可能需要输入多个数据之后再点击提交的. ...
- [oldboy-django][2深入django]分页功能
1 django自带分页 1.1 分页模板 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- mysql物理备份恢复 xtrabackup 初试
听闻xtrabackup开源且强大 2018-03-06 11:54:41 在官网下载安装了最新的2.4.9版本 网上文章都用的innobackupex,但是最新版已经抛弃了,自己看看手册<Pe ...
- C++ 编程笔记
图片有点大,请耐心下载!
- Pointcut is not well-formed: expecting 'name pattern' at character position 53
报错内容: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataso ...