Announcement

Collapse
No announcement yet.

Warum keine Typangabe bei Linq/Lambda?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Warum keine Typangabe bei Linq/Lambda?

    Hallo zusammen,

    eine kurze Frage:

    Bei einem Linq-Query mit Lambda-Expression muss ich nie den typen angeben. Warum? Ich frage mich, warum z.B. die Where-Methode automatisch den typ kennt. Beispiel:


    Statt: listeMitAffen.Where(Affe x => x.GrößeDerHand == 123)

    Reicht: listeMitAffenobjekten.Where(x => x.GrößeDerHand == 123)

    Wie kann das sein? Woher weiß Visual Studio oder die where-Methode was da rein muss? Schließlich kriegt die Where-Methode doch einfach nur den Predicate und sonst nichts...

    Danke!!
    Grüße
    Fresh

  • #2
    Hallo,

    der Compiler bzw. Intellisense kann den Typ ableiten. Hier ist Where eine Erweiterungsmethode und da der Typ von listeMitAffenobjekten bekannt ist, sind auch die Typ-Argumente für die Where-Erweiterungsmethode bekannt bzw. können nicht anders sein als von listeMitAffenobjekten abgeleitet, sonst würde ein Fehler passieren. Genaueres kannst du Type Inference entnehmen.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Wenn Dich das schon überrascht solltest Du Dir mal F# anschauen. Da geht das noch viel weiter

      Comment

      Working...
      X