列舉數與可列舉型別

2021-08-22 07:19:41 字數 1546 閱讀 2644

列舉數:可以理解為指向類成員的指標

可列舉型別:可以列舉的型別,必須具有getenumerator()方法

列舉數有三種型別:

1. ienmverator/ienumerable介面,非泛型介面形式

2. ienmverator/ienumerable泛型介面

3. 不使用介面形式

非泛型列舉介面

//ienumerator介面

using system.collections;

class myenumerator:ienumerator

public bool movenext()

public void reset

}//使用ienumerable介面

using system.collections;

class myclass:ienumerable

}

缺點:

1. current返回型別是object,對於值型別來說,在current返回前有一次裝箱操作,從current獲取後有一次拆箱,有效能問題

2. 失去了型別安全

不實現介面的列舉數

class sibenumerator

public bool movenext();

}

泛型列舉介面
//ienumerator繼承了ienumerator和idisposable兩個介面

using system.collections;

using system.collections.generic;

class myclass:ienumerator;

object ienumerator.current

public

bool

movenext(){}

public

void

reset(){}

public

void

dispose(){}

}//ienumerable繼承了ienumerable介面

結構體也可以使用列舉

只要定義了 getenumerator方法就可以使用foreach

可列舉與不可列舉

1 在js中,物件的屬性分為可列舉和不可列舉,它們是由屬性的enumerable值決定的,不可列舉屬性,用for.in是遍歷不到的,js中內建屬性是遍歷不到的。舉個例子 function p this.a nihao this.b yes this.c function console.log 1 ...

C 之列舉型別與列舉類

enumtype.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std 定義乙個列舉型別,可以通過這個定義相應的列舉成員的識別符號 並用其中的乙個為他們賦值 定義在main函式體外屬於全域性變數 enum gameresult ...

常量與列舉型別

常量的使用需要注意以下幾點 1 常量需要在型別關鍵字之前加上 const 表示是關鍵字。const 本身就是常量的意思 2 常量中的所有的字母全部都是大寫,而且定義的名字必須要有一定的意義,做到 見名知意 如 pi 3 常量在定義時,就必須初始化 即,給出初始值 列舉型別的定義需要注意的幾點要求。1...