Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C# Implementierung von IEnumerable<T> (https://www.delphipraxis.net/65093-implementierung-von-ienumerable-t.html)

faux 12. Mär 2006 12:25


Implementierung von IEnumerable<T>
 
Hallo!

Eine Frage:
Wieso muss man, wenn man das Typensichere Interface IEnumerable<T> implementieren will sowohl die Typensichere Methode GetEnumerator() sowie auch die Nicht-Typensichere einbinden?

Code:
#region IEnumerable<string> Members

public IEnumerator<string> GetEnumerator()
{
  foreach (string s in strings)
  {
    yield return s;
  }
}

#endregion

#region IEnumerable Members

System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
  throw new Exception("The method or operation is not implemented.");
}

#endregion
Wozu die zweite (Nicht-Typensichere) Methode?

Danke für jede Antwort.
Grüße
Faux

Christian S. 12. Mär 2006 12:34

Re: Implementierung von IEnumerable<T>
 
Wieso stellst Du die Frage hier nochmal, wenn Du hier bereits gesagt hast, sie wäre geklärt?
http://www.c-sharp-forum.de/topic_IE...ndg_54080.html

Elvis 12. Mär 2006 12:45

Re: Implementierung von IEnumerable<T>
 
Weil IEnumerable<T> von IEnumerable ableitet? :roll:
Da IEnumerator<T> von IEnumerator ableitet brauchst du die Methode nur einmal type safe schreiben. Für die explizite Implementierung von IEnumerable kannst du dein GetEnumerator aufrufen...
Code:
IEnumerator IEnumerable.GetEnumerator()
{
  return GetEnumerator();
}

faux 12. Mär 2006 13:00

Re: Implementierung von IEnumerable<T>
 
Zitat:

Zitat von Elvis
Weil IEnumerable<T> von IEnumerable ableitet? :roll:

OK, einleuchtend. :roll:
Zitat:

Zitat von Elvis
Für die explizite Implementierung von IEnumerable kannst du dein GetEnumerator aufrufen...
Code:
IEnumerator IEnumerable.GetEnumerator()
{
  return GetEnumerator();
}

Danke.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz