Avatar billede ahara Nybegynder
02. december 2006 - 18:43 Der er 10 kommentarer

Spørgsmål i generics

hvis jeg har en klasse og ønsker at oprette et nyt MyClass object indeholdende et object af en given type. Hvordan gør jeg så det? 

class MyClass
{
private string name;
private ??? specialObject 
}

Mener jeg i c++ kunne gøre noget lignende:

template<class type>
class MyClass
{
private:
string name;
Type specialObject 
}

men hvordan gør jeg det lige i c#.

Tak
AHR
Avatar billede arne_v Ekspert
02. december 2006 - 18:57 #1
class MyClass<T>
{
private string name;
private T specialObject
}
Avatar billede arne_v Ekspert
02. december 2006 - 18:57 #2
men husk at du ikke kan gøre meget med T medmindre T arver fra noget der kan noget
Avatar billede ahara Nybegynder
02. december 2006 - 19:12 #3
Hej Arne

Hvis jeg benytter følgende:

class MyClass<T>
{
private string name;
private T specialObject
}

Så kan jeg ikke lave en list af MyClass objekter:

private List<MyClass> _myclass;

Hvorfor er det lige jeg ikke kan det?
Avatar billede arne_v Ekspert
02. december 2006 - 19:29 #4
kan du ikke lave en

private List<MyClass<String>> _myclass;
Avatar billede arne_v Ekspert
02. december 2006 - 19:29 #5
eller en anden type en String
Avatar billede ahara Nybegynder
02. december 2006 - 20:09 #6
Men hvis jeg ønsker at MyClass skal kunne indeholde forskellige objekter og først kender disse under kørsel kan jeg vel ikke benytte <string>.
Avatar billede arne_v Ekspert
02. december 2006 - 20:12 #7
nej - så vil du formentlig slet ikke ønske at bruge generics i MyClass
Avatar billede ahara Nybegynder
02. december 2006 - 20:18 #8
Men hvad kan jeg så gøre. Har du en ide til hvorledes jeg opbygger MyClass så hver instans af klassen indeholder et navn og så et tilfældigt objekt (der er 3 forskellige) som først kendes under kørsel.
Avatar billede arne_v Ekspert
02. december 2006 - 20:33 #9
MyClass må vel enten bare bruge Object eller hvis de 3 tilfældigvis arver fra en
fælles klasse bruge den
Avatar billede arne_v Ekspert
17. marts 2007 - 03:00 #10
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester