Gå til innhold

hent ut info fra en annen klasse


Anbefalte innlegg

Skrevet

Hei, jeg trenger litt nybegynnerhjelp i C#.

 

Jeg har et windows program hvor jeg har lagt til en klasse for å hente kommandolinje

 

Oppstart av programmet skjer her i Main i klassen Form1:

	[STAThread]
 static void Main(string[] Args) 
 {
           Arguments commandLine = new Arguments(Args);
           Application.Run(new Form1());
 }

 

Hvordan får jeg gjort denne commandLine informasjonen tilgjengelig i andre klasser i programmet mitt?

Videoannonse
Annonse
Skrevet

Du kan lage en statsisk egenskap f.eks.

 


public class Program
{
 private static Arguments m_args;
 public static Arguments Arguments { get { return m_args; } }

 [STAThread]
 static int Main(string[] args)
 {
   m_args = new Arguments(args);
   Application.Run(new Form1());
 }
}

 

Etter dette kan du hente Program.Arguments

Skrevet (endret)

Takk. Nå fikk jeg det til å virke.

 

Jeg er ikke helt sikker på om jeg helt skjønner hvorfor. Du definerte den ene variablen som private. Vil det si at når jeg nå i neste omgang forflytter meg over til en annen klasse (WorkerClass) så vil jeg ikke lenger ha tilgang til m_args?

Endret av klunde
Skrevet

Det stemmer.

Den er laget private for at andre ikke skal f.eks. sette den til null, derfor bruker man en Property

"public static Arguments Arguments { get { return m_args; } }"

for å hindre det.

Skrevet

Hmm... Endelig en ting som taler til fordel for properties. Om man skal ha en read-only. Når det kommer til statistke variabler som skal være read/write derimot, er jeg mot bruk av properties.

Skrevet
public string Password 
{
 get { return m_password; }
 set
 {
   if(value.Length < 6)
     throw new InvalidPasswordException("Password is to short");
   else
     m_password = value;
 }
}

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...