Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
Fordi: * private field + public property giver dig mulighed for senere at tilfoeje funktionalitet til get og set uden at det kraver aendringer i koden der kalder dem * properties supporterer polymorphisme fiels goer ikke
I version 3.5 (og måske også version 3.0) af .Net frameworket kan du også angive en property som:
public int NumberOfSeats{get; set;} - men rent teknisk nede bagved ligger de stadig med private fields og public properties. Men ellers enig med Arne - der er også en række ting vedr. data-binding, der gør public fields til en rigtig dårlig ide.
Null-pointer exceptions er en anden ting, der gør public fields til en dårlig ide.
Herefter vil du kunne få fat i strengen ved hjælp af Form1.s.
Hvis du istedet skal have det til at ske 'automatisk', skal du lave eventhandlers/delegates til det.
Grundlæggende er spørgsmålet - hvad er formålet med din public string? Skal den tilgås fra andre klasser, eller skal andre klasser gøres opmærksom på når strengen ændres?
Når den er public, kan alle klasser så ikke automatisk tilgå den?, jeg kunne godt tænke mig at lære hvordan andre klasser kan gøres opmærksom på når strengen ændres, Er det nemt?
Alle kan tilgå noget der er public og static bare via klassenavnet.
Alle kan tilgå noget der er public men ikke static via en instans af klassen.
Og et svar fra mig.
Synes godt om
Slettet bruger
03. juni 2008 - 11:56#10
Og et svar herfra. For at svare kort på dit spørgsmål skal du lave en delegate og en eventhandler på din form, som andre klasser kan abonnere på. Det kræver dog at det er en property, så du har mulighed for at fyre eventet, når værdien ændrer sig.
Søg på Google omkring INotifyPropertyChanged - det er et interface, som gør det nemt for andre klasser at lytte på værdien.
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.