成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析枚舉的幾種類型

開發(fā) 開發(fā)工具
我們今天要談?wù)劽杜e的幾種類型,枚舉類型定義了一系列有序值的集合。集合中的有序值可以稱為元素,元素一般從0開始索引,

  枚舉類型定義了一系列有序值的集合。枚舉變量就是從這個既定的集合中取某個值。集合中的有序值可以稱為元素,元素一般從0開始索引(也就是元素的順序號)。

  定義一個枚舉類型,采用以下的格式:

  type typeName = (val1, ..., valn)

  其中typeName和每一個val都必須是有效的標(biāo)識符。

  VCL中有很多地方用到了枚舉類型,比如Object InspectorFormBorderStyles屬性就是,并且有一個下拉列表框選值,如下圖:

我們舉一個完整的例子來看看枚舉的類型的方方面面。

  1、新建一個Console Application

  2、然后我們直接輸入下面的代碼吧,請仔細(xì)看注釋喲,如下:

 

  1.   program Project1;  
  2.   {$APPTYPE CONSOLE}  
  3.   uses  
  4.   SysUtils;  
  5.   { type中定義枚舉類型}  
  6.   type  
  7.   TSize = (Small = 5, Medium = 10, BeforLarge, Large = Small + Medium);  
  8.   { TSize中因為Medium被索引為10,Small被索引為5,所以Large的索引為10 + 5 = 15}  
  9.   TMyColor = (mcRed, mcBlue, mcGreen, mcYellow, mcOrange);  
  10.   {mcRed = 0, mcBlue = 1, mcGreen = 2, mcYellow = 3, mcOrange = 4}  
  11.   TAnswer = (ansYes, ansNo, ansMaybe = 1);  
  12.   { ansMaybe 為 1, 那么ansYes = 0, ansNo = 1}  
  13.   var  
  14.   Size: TSize; { 聲明TSize枚舉類型的變量}  
  15.   MyColor: TMyColor;  
  16.   Answer: TAnswer;  
  17.   MyCard: (Club, Diamond, Heart, Spade); { 也可以這樣直接聲明}  
  18.   //Card1: (Club, Diamond, Heart, Spade);  
  19.   { 此句編譯后導(dǎo)致錯誤,提示"Identifier redeclared"}  
  20.   begin  
  21.   Size := BeforLarge; { Ord(Size) = 11}  
  22.   Writeln('BeforLarge在TSize中的索引為:' + IntToStr(Ord(Size)));  
  23.   { 顯示11,因為Medium被索引為10,因此其后序索引為11}  
  24.   Size := Large; { Ord(Size) = 15}  
  25.   Writeln('Large在TSize中的索引為:' + IntToStr(Ord(Size))); { 顯示11}  
  26.   Size := TSize(6); { Ord(Size) = 6}  
  27.   Writeln('TSize(6)在TSize中的索引為:' + IntToStr(Ord(Size))); { 顯示6}  
  28.   Inc(Size); { Ord(Size) = 7}  
  29.   Writeln('Inc(Size)在TSize中的索引為:' + IntToStr(Ord(Size))); { 顯示7}  
  30.   { 我們來看看TAnswer中元素的索引}  
  31.   Answer := ansYes;  
  32.   Writeln('ansYes在TAnswer中的索引為:' + IntToStr(Ord(Answer)));  
  33.   Answer := ansNo;  
  34.   Writeln('ansNo在TAnswer中的索引為:' + IntToStr(Ord(Answer)));  
  35.   Answer := ansMaybe;  
  36.   Writeln('ansMaybe在TAnswer中的索引為:' + IntToStr(Ord(Answer)));  
  37.   { 因為ansNo和ansMaybe具有相同的索引值,所以兩個元素表現(xiàn)為相同值}  
  38.   Readln;  
  39.   end. 

 

  3、運(yùn)行,以檢驗結(jié)果,如下:

Note

  Enumerated constants without a specific value have RTTI(不指定元素的索引的枚舉類型可以生成運(yùn)行時類型信息(RTTI))

  type SomeEnum = (e1, e2, e3);

  whereas enumerated constants with a specific value, such as the following, do not have RTTI:(指定了元素索引的枚舉類型將不可以生成運(yùn)行時類型信息,如下所示)

  type SomeEnum = (e1 = 1, e2 = 2, e3 = 3);

  以上代碼均在Delphi7中測試通過。

原文鏈接:http://www.cnblogs.com/pchmonster/archive/2011/12/23/2300039.html

【編輯推薦】

  1. Java和C++在細(xì)節(jié)上的差異:枚舉與反射
  2. C++的中的結(jié)構(gòu)體和枚舉
  3. WCF枚舉實現(xiàn)技巧總結(jié)
  4. VB.NET枚舉增加編程速率
  5. WCF枚舉類型使用注意事項介紹
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-03-12 17:29:16

Python模塊

2025-01-20 00:13:19

TypeScript操作符數(shù)據(jù)類型

2009-08-18 09:37:14

C#枚舉類型

2009-08-18 10:35:46

C#枚舉類型

2009-08-18 12:52:33

C#枚舉類型

2009-09-14 15:12:30

XML節(jié)點類型

2022-06-27 11:09:06

邊緣計算

2009-08-18 13:00:59

C#枚舉類型

2009-07-07 18:06:14

JDK1.5枚舉類型

2021-12-20 23:24:40

前端測試開發(fā)

2009-08-18 10:41:38

C#枚舉類型

2009-08-18 09:51:18

C#枚舉類型

2022-06-27 09:45:22

MySQL索引

2010-04-16 14:39:54

ORACLE鎖

2010-02-04 11:32:01

數(shù)據(jù)交換技術(shù)

2022-02-25 14:06:01

區(qū)塊鏈生態(tài)系統(tǒng)技術(shù)

2021-09-09 13:53:08

區(qū)塊鏈加密貨幣技術(shù)

2010-09-25 14:03:47

2020-12-30 07:55:37

C++轉(zhuǎn)換類型

2021-03-11 14:46:05

C++類型轉(zhuǎn)換語言
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久久无码国产精品一区 | 国产伦精品一区二区三区视频金莲 | 国产精品九九 | 婷婷久久精品一区二区 | 国产一区二区三区视频在线观看 | 91 在线| 亚洲欧美日韩在线不卡 | 一区在线观看 | 一区二区三区日本 | 正在播放国产精品 | 91精品国产综合久久久久蜜臀 | 欧美色综合一区二区三区 | 婷婷五月色综合香五月 | 国产精品久久久久一区二区三区 | 亚洲精品欧美一区二区三区 | 欧美日韩成人一区二区 | 少妇精品亚洲一区二区成人 | 日韩成人一区 | 久久久亚洲一区 | 国产高清精品在线 | av网站免费观看 | 91成人午夜性a一级毛片 | 精品国产乱码一区二区三区a | 一区二区三区视频在线 | 真人一级毛片 | 丝袜美腿一区二区三区 | 日韩av高清 | 91精品久久 | 久久久久一区二区三区 | 欧美激情久久久 | 亚洲第一福利网 | 亚洲一区二区在线播放 | 国产精品色哟哟网站 | 中文字幕在线精品 | 国产乱码精品一区二区三区中文 | 亚洲国产欧美在线 | 久久久久亚洲精品 | 免费在线观看黄视频 | 精品视频在线观看 | 美女天天操 | 黄网站涩免费蜜桃网站 |