Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
https://www.itnetwork.cz/csharp
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Posix
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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Avatar
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
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.