26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

fil: WinTest.cs<br />

//postcondition: Viser en messagebox<br />

using System.Windows.Forms;<br />

public class Test{<br />

}<br />

public static void Main(string[] args){<br />

string nr1="Dette er C Sharp.";<br />

string nr2="Dette er en System.Windows.Forms.MessageBox!\nHello World!";<br />

MessageBox.Show(nr2,nr1);<br />

}<br />

Forklaring:<br />

Hvis koden er blevet korrekt kompileret (csc WinTest.cs) viser WinTest.exe en messagebox med en<br />

titellinje og en tekst delt på 2 linjer. Tegnet ’\n’ angiver linje skift. (Escape tegn idet alle escape<br />

tegn indledes med \ og de er format koder som ikke udskrives).<br />

Koden erklærer 2 string-objekter, som bruges til boksens titel og tekst.<br />

Klassen MessageBox findes i namespace ’Forms’ som findes i ’Windows’ som findes i ’System’.<br />

Ved at bruge ’using’ undgås at skrive hele ’stien’ hver gang. Klassen MessageBox har en metode<br />

’Show()’ som tager 2 parametre: en tekst og en titel.<br />

Prøv at fjerne using-linjen og kompiler programmet. Kompileren meddeler nu en fejl:<br />

WinTest.cs(11,2): error CS0246: The type or namespace name 'MessageBox' could not be found<br />

(are you missing a using directive or an assembly reference?)<br />

Kompileren forstår ikke henvisningen til ‘MessageBox’: hvilken/hvor?<br />

Prøv derefter at tilføje en linje til Main() således:<br />

public static void Main(string[] args){<br />

string nr1="Dette er C Sharp.";<br />

string nr2="Dette er en System.Windows.Forms.MessageBox!\nHello World!";<br />

Assembly.Load("System.Windows.Forms");<br />

MessageBox.Show(nr2,nr1);<br />

}<br />

Den nye sætning loader/indlæser den DLL fil eller det namespace som vi ønsker at anvende.<br />

Sætningen er den mest sikre metode til at referere eller inddrage bestemte klasser som er<br />

’eksterne’ dvs ikke findes i denne cs-fil. Hvis du har problemer med at få dette Windows<br />

program (eller andre) til at køre skulle Assembly.Load() sætningen klare alle problemer.<br />

Senere i kurset vil vi skrive vore egne DLL filer og hvis der er problemer med at kunne<br />

’referere’ dem skulle Assembly.Load() også kunne klare disse problemer.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!