case integer of在delphi的结构中非常常见
那么怎么会出现这样的定义方式呢?
例如: TRect=record
Case Integer Of
0:(Left,Top,Right,Bottom:integer);
1:(TopLeft,BottomRight:TPoint);
这个类型中事实上他定义了2种结构方式
1、是由四个INTEGER组成的,在程序中我们可以定义一个变量
var Rect;
Rect.left := 1;
Rect.Right := 2;
Rect.Bottom:= 3;
Rect.top := 0;
2、由2个TPoint组成我们也可以写成
Rect.TopLeft.x := 0 ;
rect.TopLeft.Y := 1;
Rect.BottomRight.y := 2;
Rect.Bottomright.Y := 3;
但是2中方式都可以使用,而且他们使用的是一块内存,这时候我们就清楚了,他其实是为了在不同场合下使用相同内存,而采用不同的数据结构的定义。
原文出处:http://blog.youkuaiyun.com/simb/article/details/4506980