Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:00 Der er 13 kommentarer og
1 løsning

Globale Variabler

Hvilken måde er den korrekte måde at gøre det på, hvis jeg har nogle faste variabler i en klasse, som ikke skal ændres af andre klasser men kun læses.
Avatar billede nielle Nybegynder
04. januar 2006 - 23:04 #1
Du kan erklære dem som readonly, eller du kan lave dem som en property, hvor du så kun implementere get-delen.
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:06 #2
Hva er bedst??? Og kan jeg få dig til at lave et lille eksempel
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:11 #3
Sådan gør jeg nu

using System;

class Var
{
  public string test = "Hello World";
}
class Test
{
  static void Main()
  {
  Var va = new Var();
  Console.WriteLine(va.test);
  }
}
Avatar billede nielle Nybegynder
04. januar 2006 - 23:13 #4
const - så kan "variablerne" ikke sættes andet end i det øjeblik de defineres.

readonly - så kan variablerne kun sættes i klassens constructor.

property + get - det er nok det du leder efter:

    class DinKlasse
    {
        private int _EtTal = 42;
        public int EtTal
        {
            get
            {
                return _EtTal;
            }
        }

        public void DoSomething()
        {
            _EtTal = 13;  // Dette kan man ikke gøre med const eller readonbly
        }
    }
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:14 #5
Det med const var jeg godt klar over

Jeg siger mange tak for det hurtige svar :)

Smid et svar
Avatar billede nielle Nybegynder
04. januar 2006 - 23:15 #6
Jeg nævnte kun const fordi den var en del af "famillien" i denne sammenhæng ;^)

Svar :^)
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:16 #7
Det med de property's kan jeg godt læse dem i en anden klasse?

Jeg sad nemlig og legede med det før, men kunne ikke komme til at læse dem udenfor klassen
Avatar billede arne_v Ekspert
04. januar 2006 - 23:18 #8
i C# 2.0 er der muligheden for at lave en public get og f.eks. en internal set
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:19 #9
Hva kan jeg lave med en public get?
Avatar billede arne_v Ekspert
04. januar 2006 - 23:19 #10
med en public get kan du læse property alle steder
Avatar billede nielle Nybegynder
04. januar 2006 - 23:20 #11
Det er meningen med properties at man skal kunne læse dem uden fra klassen - men de skal eneten være statiske, eller du skal have en enstans af klassen.
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:26 #12
Error    1    'LoginSystem2005.Cencryption.passPhrase' is inaccessible due to its protection level    C:\Documents and Settings\Administrator\Dokumenter\Visual Studio 2005\Projects\LoginSystem2005\LoginSystem2005\New_Connect.cs    185    57    LoginSystem2005


Er fejlen hvis jeg bare bruger public get

Error    1    The accessibility modifier of the 'LoginSystem2005.Cencryption.passPhrase.get' accessor must be more restrictive than the property or indexer 'LoginSystem2005.Cencryption.passPhrase'    C:\Documents and Settings\Administrator\Dokumenter\Visual Studio 2005\Projects\LoginSystem2005\LoginSystem2005\Cencryption.cs    25    20    LoginSystem2005


Jeg kalder dem fra en anden klasse således

Minklasse kla = new Minklasse();
kla.MinVariabel;
Avatar billede arne_v Ekspert
04. januar 2006 - 23:33 #13
har du en public på get og ingenting på selve property'en ?
Avatar billede alex_sleiborg Nybegynder
04. januar 2006 - 23:41 #14
Jeg skulle bare ændre så min property'en så sådan her ud

public string hashAlgorithm
        {
            get
            {
                return _hashAlgorithm;
            }
        }

Nu virker det, mange tak :)
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