generieke methoden, c #

Dit is mijn eerste vraag dus wees zacht :)

Ik wil de methode kunnen gebruiken voor generieke typen die me een object zullen opleveren voor later gebruik. Ik heb de onderstaande code geprobeerd, maar deze is niet compleet.

Ik heb dit nodig om als volgt te kunnen bellen: City city = GetDataById (Id); Natuurlijk in plaats van stad heb ik generiek gebruik nodig. Bedankt en groeten.

private T GetDataById(Guid Id)
        {
            T obj;
            using (ISession session = Session.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    obj = session.Get(Id);
                    tx.Commit();                    
                }    
                 return obj;
            }

        }
1
Wat zou T zijn?
toegevoegd de auteur SLaks, de bron

2 antwoord

Ik denk dat je wilt:

    private T GetDataById(Guid Id)
    {
        T obj;
        using (ISession session = Session.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                obj = session.Get(Id);
                tx.Commit();
            }
            return obj;
        }
    }

noem het dan als:

        City city = GetDataById(Id);
5
toegevoegd
Bedankt, dat is het.
toegevoegd de auteur user1084557, de bron

Je definieert nooit T. Je ... moet dat.

private T GetDataById(Guid Id) { /* ... */ }

En...

City city = GetDataById(Id);

Je zult het nooit zo kunnen noemen omdat het argument type niet kan worden afgeleid. U moet het leveren, d.w.z.

City city = GetDataById(Id);
2
toegevoegd