IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:12.3.2014 23:09

Ahoj. Mám třídu Response<T>. Chci vytvořit extension jen pro určité typy Response.

public static int VratCislo<T>(this Response<T> response) where T : BaseClass
        {
            return response.Cislo;
        }
class BaseClass
{
    public int Cislo { get; set; }
}
class ClassOne : BaseClass
{
    public int One { get; set; }
}
class ClassTwo : BaseClass
{
    public int Two{ get; set; }
}

Jenze to nefunguje jak chci:

Response<ClassOne> r = new Response<ClassOne>();
r.VratCislo(); // FAIL

Vezne to jen pro BaseClass

Response<BaseClass> r = new Response<BaseClass>();
r.VratCislo(); // OK

Chápete, co jsem se vám snažil vysvětlit a jak to vyřešit? :D

Editováno 12.3.2014 23:10
Odpovědět
12.3.2014 23:09
Neaktivní uživatelský účet
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jan Vargovský:12.3.2014 23:22

Můžeš hodit plné třídy jak je máš definované ?

 
Nahoru Odpovědět
12.3.2014 23:22
Avatar
Neaktivní uživatel:13.3.2014 0:16

BaseClass, ClassOne a ClassTwo jsou stejné až na jména. Response<T> by měl být tady https://github.com/…tResponse.cs

Nahoru Odpovědět
13.3.2014 0:16
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:13.3.2014 0:28

neeee uz zase.. hodinu hledam problem a pak si vsimnu, ze sem zapomnel dat u jedne tridy class ClassXXX : BaseClass... Kdyz mam takovych tridy skoro 10, tak sem to prehledl :( ok VYRESENO!

Nahoru Odpovědět
13.3.2014 0:28
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.