我對.Net很新。在課堂上,我已經看到對象爲IComparer,IEnumerable等。有人可以解釋這些代表什麼?有人可以解釋這些IComparer,IEnumerable等代表什麼
感謝您的幫助。
我對.Net很新。在課堂上,我已經看到對象爲IComparer,IEnumerable等。有人可以解釋這些代表什麼?有人可以解釋這些IComparer,IEnumerable等代表什麼
感謝您的幫助。
它們是接口。一個接口可以確保對象具有某些方法,而不管它是什麼類。當你有需要幾個常用方法的代碼時,它們非常有用,但不需要知道該類的所有細節。
Object()
,System.Collections.ArrayList
和System.Collections.Queue
全部實施IEnumerable
。如果您有一個要求輸入IEnumerable
的函數,則可以將任何這些類的對象傳遞給該函數,並且該函數確信該對象實現了所有IEnumerable成員。
在控制檯應用程序中嘗試以下代碼。這三個不同的等級都可以接受,以傳遞給PrintAll(items)
。
Public Sub PrintAll(items As IEnumerable)
For Each item In items
Console.WriteLine(item)
Next
End Sub
Public Sub Main()
Dim objects As Object() = {1, 2, 3}
Dim list As New ArrayList({4, 5, 6})
Dim queue As New Queue({7, 8, 9})
PrintAll(objects)
PrintAll(list)
PrintAll(queue)
Console.ReadLine()
End Sub
這些是接口。 「我」通常表示這一點。這些包含任何實現特定接口的類必須實現的方法契約。換句話說,如果你有一個實現IEnumerable的類,那麼你需要在你的類中包含在接口中的方法。接口(和麪向對象編程)可以變得非常深入,但這是一個廣泛的解釋,希望能夠足夠簡單地理解。
請讓我知道,如果我可以澄清。
我首先看一下interface這個想法,因爲它們都是接口,這是naming conventions的證明。這需要一個潛在的冗長的答案來傳遞完整的理解,但是想法是接口提供了方法的簽名,以便繼承類知道要實現哪些方法。我意識到這是很多潛在的陌生概念,但將界面視爲配方。你被賦予創建一些東西的指導。麪粉1克,糖1噸等。如果你想製作這個產品,你必須確保你能滿足要求,把它們放在一起,你就有了成品。對不起,如果這是一個可怕的比喻,但希望它有幫助。 就你而言,微軟提供的接口名稱給出了他們想要表示的內容的一個小概念。例如,如果您繼承IComparer,則最終會生成一個可以比較兩個對象的類。重要的是要注意,對象的類型不一定是由接口定義的。這取決於類型的執行情況。只有界面提供了「框架」。 祝你好運!
ICompare是用於比較的東西。與排序/比較(顯然)相關的類可以實現這一點。
IEnumerable用於收集,列表,LINQ的東西。