C#, publik property i en klass som tillåter tex. int test = minklass[3];

Permalänk
Medlem

C#, publik property i en klass som tillåter tex. int test = minklass[3];

Tjaba!

Håller på med en labb i skolan. Håller på att göra en egen arrayklass typ, men problemet är att jag vill göra delar av den interna arrayen åtkommliga utifrån genom att tex. skriva minklass[3] och då komma åt position 3 i den interna arrayen för minklass. Hur gör man detta på ett smidigt sätt?

Har kollat bland interfaces men har inte kunnat hitta hur man löser det.

//2infinity

Permalänk
Medlem

Ohh! Tror jag hittade på :
http://msdn.microsoft.com/en-us/library/92t2ye13.aspx
typ:
public Box this[int index]
{

ska provas!

Edit: Japp nu funkar det!

Permalänk
Medlem

Bara för att göra dig mer förvirrad har du lite mer saker du kan pilla på i objekten
Overloadable Operators (C# Programming Guide)
Dock inget jag rekommenderar nu till en början, se till att bli lite varm i kläderna först.

Permalänk

Jag tycker att det låter konstigt att du vill göra

int intFrånMinKlass = MinKlass[3];

Då måste klassen vara static och innehålla en array som är static. Jag har aldrig sett det, men det kanske används.
Annars brukar det se ut så här:

MinCollectionsKlass minCollection = new MinCollectionsKlass(); minCollection.Fill(); //här fyller du på collectionen eller så kan du göra det i konstruktorn int intFrånMittCollectionsobjekt= minCollection[3];//hämta från objektet, inte klassen

För att få till detta ska du implementera interfacet IEnumerable på din collectionsklass.

Permalänk
Medlem
Skrivet av fatteralbert:

Jag tycker att det låter konstigt att du vill göra

int intFrånMinKlass = MinKlass[3];

Då måste klassen vara static och innehålla en array som är static. Jag har aldrig sett det, men det kanske används.
Annars brukar det se ut så här:

MinCollectionsKlass minCollection = new MinCollectionsKlass(); minCollection.Fill(); //här fyller du på collectionen eller så kan du göra det i konstruktorn int intFrånMittCollectionsobjekt= minCollection[3];//hämta från objektet, inte klassen

För att få till detta ska du implementera interfacet IEnumerable på din collectionsklass.

nja han vill hämta en variabel som är instancerad inne i klassen
MinKlass hej = new MinKlass();
hej.AddVariable(35);

hej.AddVariable ska alltså lägga till en variabel i en lista som finns där inne.

då ska alltså hej[0] returnera den variablen.

Det är iaf så jag tolkar att han vill göra/gör.
eller är jag helt ute i skogarna på min cykel?

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk

Ja, just det. Vi är helt överens. Då är det objektet han använder, inte klassen. Alltså hej[0], inte MinKlass[0].