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

淺析枚舉的幾種類型

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

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

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

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

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

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

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

  1、新建一個(gè)Console Application

  2、然后我們直接輸入下面的代碼吧,請(qǐng)仔細(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中因?yàn)镸edium被索引為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)致錯(cuò)誤,提示"Identifier redeclared"}  
  20.   begin  
  21.   Size := BeforLarge; { Ord(Size) = 11}  
  22.   Writeln('BeforLarge在TSize中的索引為:' + IntToStr(Ord(Size)));  
  23.   { 顯示11,因?yàn)镸edium被索引為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.   { 因?yàn)閍nsNo和ansMaybe具有相同的索引值,所以兩個(gè)元素表現(xiàn)為相同值}  
  38.   Readln;  
  39.   end. 

 

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

Note

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

  type SomeEnum = (e1, e2, e3);

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

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

  以上代碼均在Delphi7中測(cè)試通過。

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

【編輯推薦】

  1. Java和C++在細(xì)節(jié)上的差異:枚舉與反射
  2. C++的中的結(jié)構(gòu)體和枚舉
  3. WCF枚舉實(shí)現(xiàn)技巧總結(jié)
  4. VB.NET枚舉增加編程速率
  5. WCF枚舉類型使用注意事項(xiàng)介紹
責(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-09-14 15:12:30

XML節(jié)點(diǎn)類型

2009-08-18 12:52:33

C#枚舉類型

2009-08-18 10:35:46

C#枚舉類型

2022-06-27 11:09:06

邊緣計(jì)算

2009-08-18 13:00:59

C#枚舉類型

2009-07-07 18:06:14

JDK1.5枚舉類型

2021-12-20 23:24:40

前端測(cè)試開發(fā)

2022-06-27 09:45:22

MySQL索引

2009-08-18 10:41:38

C#枚舉類型

2009-08-18 09:51:18

C#枚舉類型

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)換語言
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日韩一区二区在线视频 | 中文字幕a√ | 中文字幕二区 | 手机av在线 | 久久99精品国产 | 亚洲精品一区二区三区四区高清 | 超碰男人天堂 | a毛片 | 在线国产一区 | 国产免费一区二区 | 亚洲国产69| 一区二区三区亚洲 | 亚洲精品电影在线观看 | 久艹av| 91精品国产综合久久婷婷香蕉 | 久久久久久久久久久爱 | 久久综合久色欧美综合狠狠 | 久久亚洲综合 | 午夜在线| 成人久久久 | 麻豆一区二区三区 | 91啪亚洲精品 | 日韩一区在线播放 | 欧美精品一区在线发布 | 黄免费观看视频 | 午夜精品久久久久久久久久久久久 | 国久久 | 亚洲最大av | 欧美中文字幕一区 | 99re视频精品 | 亚洲精品片 | 国产成人精品在线 | 亚洲成人在线免费 | 激情一区二区三区 | 玖玖精品 | 日韩精品 电影一区 亚洲 | 国产精品毛片久久久久久 | 中日av| 天天操人人干 | 色眯眯视频在线观看 | 国产精品激情小视频 |