Structs in een andere classe

Status
Niet open voor verdere reacties.

ifstatement

Gebruiker
Lid geworden
16 apr 2012
Berichten
91
Hallo!

In een apparte class heb ik een struct en een variabele staan. Zoals hieronder te zien is:

Code:
public class Klasse1
{
         public struct Structuur
        {
            public static double nummer1, nummer2;
        }
        public int Nummer3(int para)
        {
            return para * 3;
        }
}

Als ik deze class gebruik op een form, moet ik hem als Type gebruiken om een van de doubles in de struct te gebruiken, zoals hieronder:

Klasse1.Structuur.nummer1 = 1;

En ik moet hem als variabele gebruiken om de public int te gebruiken, zoals hieronder:

Klasse1 Klss1 = newe Klasse1();
int Nummer4 = Klss1.Nummer3(3);

Wat doe ik fout dat dit niet op één manier kan?
Alvast bedankt!
 
Laatst bewerkt door een moderator:
Je maakt de struct niet aan in de klasse. Je definieert de struct, maar de struct is geen onderdeel van de klasse.

Wat je in voorbeeld 1 doet is een variabele definieren gebaseerd op de struct in de klasse. De klasse zelf heeft echter geen kopie van de struct die aanspreekbaar is in de klasse zelf.

Je hebt een klasse "huis" waarin je "raam" definieert, maar "huis" heeft zelf geen "raam".
 
Nu heb ik nog een probleem, ik heb in die struct een list en een array, beide van integers. Nu ik naast de class ook de struct heb gedefinieerd en ik wil debuggen, krijg ik de volgende error op die array en list:

"cannot have instance field initializers in structs".

Hieronder kort de code:

Code:
public class Klas
{
      public struct Structuur
      {
              public List<int> Lijst = new List<int>();
              public int[] Array = new int[2];
      }
}

Hoe los ik dit op?
 
Laatst bewerkt door een moderator:
Je kunt ipv een struct hier een class maken, structs zijn voor dit soort dingen niet echt bedoelt.
Een struct kun je gebruiken voor de simpelere dingen zoals dit:

Code:
public struct Coords
{
    private readonly int _x;
    private readonly int _y;

    public Coords(int x, int y)
    {
        _x = x;
        _y = y;
    }

    public int Y
    {
        get { return _y; }
    }
    public int X
    {
        get { return _x; }
    }
}

Als je toch een struct wilt gebruiken kun je een constructor maken die een list en array neemt zoals je hier met de x, y ziet of de lijst static maken.

http://msdn.microsoft.com/en-us/library/saxz13w4(v=vs.90).aspx
 
Ja klopt, ik had het gezien, heb er nu inderdaad maar apparte Classes van gemaakt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan