Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Lambda bei Generisch vererbten Klasse: Wie ermittelt der Compiler den Typ des Lambda-Parameters?
macFish
myCSharp.de - Member



Dabei seit:
Beiträge: 20

Themenstarter:

Lambda bei Generisch vererbten Klasse: Wie ermittelt der Compiler den Typ des Lambda-Parameters?

beantworten | zitieren | melden

    public class CustomerMap : ClassMap<Customer>
    {
        public CustomerMap()
        {
            Id(x => x.Id);
            Map(x => x.FirstName);
            Map(x => x.LastName);
            References(x => x.Store);
        }
    }

Ein Lambada Ausdruck ist eine anonymer Delegate. Wie kommt es zustande das x gleich eine Instanz von Customer ist ?
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1249

beantworten | zitieren | melden

Das leitet der Compiler aus der Methodensignatur her. Ist das Fluent NHibernate? Dann will die Id Methode eine Func<T, Object> haben, also weiß der Compiler, dass der einzige Parameter den Typ T, also Customer hat.
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo macFish,

schön zu sehen, dass du dich mit FluentNHibernate beschäftigst.

Deine Klasse CustomerMap leitet ja von ClassMap<Customer> ab. Damit legst du fest, dass das T in ClassMap<T> vom Typ Customer ist. Das verwendet der Compiler dann für die Lambda-Ausdrücke.

m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
macFish
myCSharp.de - Member



Dabei seit:
Beiträge: 20

Themenstarter:

beantworten | zitieren | melden

achaaa ok...

m0rius
danke nochmal für die letzte Antwort.
private Nachricht | Beiträge des Benutzers