struct
Børre Stenseth
C#>Structer

Struct

Hva
Structer

Strukturer, struct, er et kjent begrep i C og C++, og tilsvarende mekanismer finnes i andre språk. En struct kan oppfattes som en samling strukturerte data. Det er lett å se likheten mellom en class og en struct. Begge kan brukes til å inkapsle en beskrivelse av et fenomen eller en enhet. Implementasjonsmessig er det viktige forskjeller. Den viktgste er at en struct er en basistype og ikke er referansetype. Structer kan ikke inngå i noen arverekkefølge.

Structer slik de er implementert i C# kan ha metoder på samme måte som klasser.

Vi kan godt ta den løsningen som er brukt som illustrasjon for Properties og endre klassene til structer:

using System;
using System.Collections.Generic;
using System.Text;
namespace lang3
{
    class Program
    {
        static void Main(string[] args)
        {
            bil1 minBil = new bil1(123, "min");
            Console.WriteLine(minBil.getOwner());
            bil2 dinBil = new bil2(123, "din");
            Console.WriteLine(dinBil.Owner);
        }
    }
    struct bil1
    {
        private int regno;
        private string owner;
        public bil1(int n, string s)
        {
            regno = n;
            owner = s;
        }
        public string getOwner() { return owner; }
        public void setOwner(String s) { owner = s; }
        public int getRegNo() { return regno; }
        public void setRegNo(int n) { regno = n; }
    }
    struct bil2
    {
        private int regno;
        private string owner;
        public bil2(int n, string s)
        {
            regno = n;
            owner = s;
        }
        public int RegNo
        {
            get { return regno; }
            set { regno = value; }
        }
        public string Owner
        {
            get { return owner; }
            set { owner = value; }
        }
    }
}
Referanser

Koden er sitert i teksten

Du kan eksperimentere med dette og noen andre temaer i programmet:
https://svn.hiof.no/svn/psource/Csharpspikes/language/summary
Vedlikehold

B.Stenseth, november 2005

(Velkommen) C#>Structer (Stringer)