Jag har precis börjat med c# så ni får ursäkta bombardemanget av frågor. <code> Ahh, listigt. Fast kommer det inte finnas två kopior av föräldraklassen då? Och så en till.... nej det finns bara en kopia av förälderklassen, eftersom det är en referens som skickas. Precis som du själv säger.. Tack, men det hjälpte inte. Det jag menar är att jag skapar arrayen först då en metod i föräldraklassen körs. Då går det inte att skriva varken public eller något annat. Och jag kan väl inte skapa en array utan värden och fylla den sen? jo det kan du göra. Det är när du skapar referensen till arrayen som du får säga att den ska vara "protected", "internal" eller "protected internal" (eller "public" om du vill), inte när du skapar arrayen. Tack så mycket! Nån gång ska jag förstå hur det där fungerar så jag slipper fråga vid varje ny situation ;-)Klasser och underklasser
Jag har en klass som innehåller en underklass. I klassen så skapas ett antal objekt av typen underklass. Hur gör jag för att ett sådant objekt skall kunna komma åt
1. Variabler som tillhör klassen som skapat dem
2. Andra objekt av typen underklass.
Jag kan använda static för fråga 1, men innebär inte det att alla objekt av klassen klass delar på värdet? Det vill jag inte.Sv: Klasser och underklasser
public class Klassen
{
public void DetHärÄrMinTestMetod()
{
UnderKlassen uk;
uk = new UnderKlassen(this); //Skicka med den här instansen
uk.Test();
}
public void SägHej()
{
MessageBox.Show("Hej!");
}
}
private class UnderKlassen
{
public UnderKlassen(Klassen FörälderKlassen) //Ta emot föräldra instansen
{
this.förälderKlassen = FörälderKlassen; //Spara föräldrainstansen
}
private Klassen förälderKlassen;
public void Test()
{
this.förälderKlassen.SägHej(); //Använda föräldrainstansen
}
}
</code>Sv:Klasser och underklasser
Sv: Klasser och underklasser
Nu kan jag komma åt objekt som skapas då föräldraklassen initieras, alltså de som är deklarerade som private/public. Men de andra underklassobjekten skapas under körning och sparas i en array. Hur kommer jag åt dem? Det går väl inte att deklarera en array utan storlek?Sv:Klasser och underklasser
Om du markerar arrayen med underklassobjekt med internal eller public så kommer underklassen åt den. Sv: Klasser och underklasser
Sv:Klasser och underklasser
men då får du kolla om den är tom innan du försöker använda den.Sv:Klasser och underklasser
Så här deklarerar du en referens till arrayen:
protected underklass[] minReferens;
Så här skapar du arrayen och låter referensen referera till den:
minReferens = new underklass[42];Sv: Klasser och underklasser