klunde Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 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? Lenke til kommentar
GeirGrusom Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 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 Lenke til kommentar
klunde Skrevet 4. februar 2007 Forfatter Del Skrevet 4. februar 2007 (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 4. februar 2007 av klunde Lenke til kommentar
GeirGrusom Skrevet 5. februar 2007 Del Skrevet 5. februar 2007 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. Lenke til kommentar
Manfred Skrevet 10. februar 2007 Del Skrevet 10. februar 2007 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. Lenke til kommentar
GeirGrusom Skrevet 10. februar 2007 Del Skrevet 10. februar 2007 Det gjør også at en kan legge til formatering, eller validering av verdiene. Lenke til kommentar
Manfred Skrevet 11. februar 2007 Del Skrevet 11. februar 2007 Hvordan legger man til validering av en property? Lenke til kommentar
GeirGrusom Skrevet 11. februar 2007 Del Skrevet 11. februar 2007 public string Password { get { return m_password; } set { if(value.Length < 6) throw new InvalidPasswordException("Password is to short"); else m_password = value; } } Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå