實現什麼介面的類例項可以被foreach

2022-02-01 09:10:46 字數 424 閱讀 9963

被乙個哥們問到了,感覺應該是ienumerator,或者是ienumerable,但是不能確定,只有鄙視自己一下先,然後做了個試驗才確定了,只要實現了ienumerable介面就可以被foreach了,ienumerator介面是不需要實現的,只要這個類能夠通過getenumerator方法返回乙個ienumerator就可以了。

ienumerable介面只有乙個方法ienumerator getenumerator(),最簡單的例子類如下:

class

ienumeratorclass : ienumerable

ienumerable 成員

#region

ienumerable 成員

public

ienumerator getenumerator()

#endregion

}

為什麼要用實現介面的類例項化介面呢

一 介面不能例項化,用介面的實現類可以例項化,將實現類的物件在記憶體中的位址指向介面,這個介面就可以使用了二 實現介面的類 例項 new 實現介面的類 這樣用不好嗎?這樣已經不是好不好的問題了,這樣的話,要介面有什麼用?用介面就是讓例項和實現類的耦合度降低。讓程式更加容擴充套件。以下是問題之外的知識...

Set介面的實現類

set是一種不包括重複元素的collection。它維持它自己的內部排序,所以隨機訪問沒有任何意義。與list一樣,它同樣執行null的存在但是僅有乙個。由於set介面的特殊性,所有傳入set集合中的元素都必須不同,同時要注意任何可變物件,如果在對集合中元素進行操作時,導致e1.equals e2 ...

實現介面的列舉類

由列舉類實現介面裡的方法,每個列舉值呼叫該方法由相同的行為方式。若要每個列舉值在呼叫該方法時由不同的行為方式,可讓每個列舉值分別實現該方法。public enum gender implements genderdesc female 女 上例中male,female建立列舉值是,不是直接建立gen...