Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.
|
|
- Pia Rasmussen
- 6 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Refleksion med.net Refleksion bruges til at undersøge klasser på runtime tidspunktet. Se hvordan du f.eks. loader en klasse fra en DLL, gennemkigger dens metoder (funktioner) og kalder dem. Helt uden at kende klassen i forvejen. Skrevet den 03. Feb 2009 af nielle I kategorien Programmering / C# Indledning Refleksion giver dig muligheden for - på runtime tidspunktet - at undersøge hvordan en klasse, et interface, en struct, eller noget helt fjerde, er skruet sammen. Med disse oplysninger i hånden kan man bruge klassen som om den var kendt på kompileringstidspunktet. Man behøver imidlertid ikke at have haft adgang til klassen på det tidspunkt. Man behøves faktisk ikke engang at have haft kendskab til dens eksistens..net frameworket er gennemsyret af såkaldte metadata ("data om data"), og refleksion er teknologien som man bruger til at udtrække disse metadata og handle på baggrund af dem. Hvad kan det så bruges til? En af mulighederne er muligheden for at lave en plugin arkitektur, hvor andre kan berige dit program med ny funktionalitet uden at din kode skal rekompileres: Dette har jeg skrevet om i en tidligere artikel Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet. En anden mulighed er et program som NUnit der bruges til unittest: Du placere dine tests i en DLL som NUnit så loader. Derefter skanner NUnit DLL'en for tests og udføre dem. Hvis du ikke allerede kender NUnit bør du tage et seriøst kig på det. Du kan starte med at læse arne_v's udmærkede artikel om det her på Eksperten: Denne her artikel afslutter i øvrigt med at skitsere skelettet for hvordan NUnit kunne være kodet. Andre steder, hvor der gemmer sig refleksion under kølerhjelmen, er sådan noget som Visual Studio's Intellisence. v. 1.0: 18/01/ Første version. Type-klassen Type-klassen er den centrale klasse inden for refleksion; enhver klasse har en type som indeholder oplysninger om klassen - klassens metadata.
2 Man kan enten bruge typeof()-operatoren eller GetType()-metoden til at finde typen af en klasse eller et objekt: using System; namespace RefleksionNS1 class Program static void Main(string[] args) // Typen af en klasse. Type type1 = typeof(enklasse); Console.WriteLine(type1.Name); // Typen af et objekt. EnKlasse klasse2 = new EnKlasse(); Type type2 = klasse2.gettype(); Console.WriteLine(type2.Name); // GetType() må ikke forveksles med ToString(): Console.WriteLine(klasse2); class EnKlasse public override string ToString() return "Hvis ikke ToString() overstyres vil den returnere: RefleksionNS1.EnKlasse"; Når man har typen, kan man udfritte den om forskellige oplysninger om klassen: using System; using System.Reflection; namespace RefleksionNS2 class Program static void Main(string[] args) // Prøv selv med en anden klasse som f.eks. int Type typen = typeof(enklasse); Console.WriteLine(typen.Name);
3 Console.WriteLine(typen.FullName); Type basetypen = typen.basetype; if (basetypen!= null) Console.WriteLine("Nedarver fra: " + basetypen); else Console.WriteLine("Nedarver ikke fra noget."); Console.WriteLine(); MemberInfo[] miarr = typen.getmembers(); foreach (MemberInfo mi in miarr) Console.WriteLine(mi.Name); Console.WriteLine("\ter en " + mi.membertype); Console.WriteLine("\ter defineret i " + mi.declaringtype); class EnKlasse public int SvaretPåLivetUniversetOgAltDetDer() return 42; public string klasselærer; public string KlasseLærer get return klasselærer; set klasselærer = value; Resultat: EnKlasse RefleksionNS2.EnKlasse Nedarver fra: System.Object SvaretPåLivetUniversetOgAltDetDer er en Method er defineret i RefleksionNS2.EnKlasse get_klasselærer er en Method er defineret i RefleksionNS2.EnKlasse set_klasselærer er en Method er defineret i RefleksionNS2.EnKlasse
4 GetType er en Method er defineret i System.Object ToString er en Method er defineret i System.Object Equals er en Method er defineret i System.Object GetHashCode er en Method er defineret i System.Object.ctor er en Constructor er defineret i RefleksionNS2.EnKlasse KlasseLærer er en Property er defineret i RefleksionNS2.EnKlasse klasselærer er en Field er defineret i RefleksionNS2.EnKlasse Som man i øvrigt kan se af output, vil en property give anledning til to metoder (foruden sig selv), en for hver af get()- og set()-accessorerne. Funktionen GetMembers() giver altså oplysninger om klassens indhold; dens metoder inkl. constructore, properties og fields. BindingFlags Hvis man derimod specifikt er ude efter en bestemt af typerne, kan man i stedet for GetMembers() bruge en af GetMethods()-, GetConstructors()-, GetProperties()- eller GetFields()-metoderne. Som udgangspunkt vil en metode som f.eks. GetMethods() returnere oplysninger om alle de metoder som klassen har og som i øvrigt er erklæret som public. Man kan ændre på dette, og man kan endda få fat i metoder som er erklæret private. Dette gøres med den rette kombination af BindingFlags: using System; using System.Reflection; namespace RefleksionNS3 class Program static void Main(string[] args) // Klassens type. Type typen = typeof(enklasse); // Klassens private metoder. MethodInfo[] miarr = typen.getmethods(
5 BindingFlags.NonPublic BindingFlags.Instance BindingFlags.DeclaredOnly); // Udskriv dem. foreach (MethodInfo mi in miarr) Console.WriteLine(mi.Name); class EnKlasse public int Metode1() return 42; private int Metode2() return ; public static int Metode3() return 100; Resultat: Metode2 BindingFlags.NonPublic giver de metoder som ikke er erklæret public. Dette er selvfølgelig ikke det samme som at sige at de er erklæret private. BindingFlags.Instance giver de metoder som er kræver en instans af klassen - altså modsætningen til metoder som er erklæret som static. BindingFlags.DeclaredOnly giver de metoder der er erklæret i selve klassen - i modsætning til de metoder der er erklæret i klasser der ligger tidligere end EnKlasse i arve-hierarkiet. Uden denne ville man også have fået udskrevet: MemberwiseClone Finalize foruden altså Metode2. Kodestumperne: MethodInfo[] miarr = typen.getmethods( BindingFlags.Public BindingFlags.Instance BindingFlags.DeclaredOnly); og: MethodInfo[] miarr = typen.getmethods( BindingFlags.Public BindingFlags.Static BindingFlags.DeclaredOnly); resulterer i: Metode1 hhv. Metode3.
6 MethodInfo-klassen GetMethods() returnere et array af MethodInfo-objekter. Disse beskriver klassens metoder i flere detaljer: using System; using System.Reflection; namespace RefleksionNS4 class Program static void Main(string[] args) Type typen = typeof(enklasse); MethodInfo[] miarr = typen.getmethods( BindingFlags.Public BindingFlags.Instance BindingFlags.DeclaredOnly); foreach (MethodInfo mi in miarr) // Metodens navn. Console.WriteLine(mi.Name); // Hvilken type returnere metoden. Console.WriteLine("\t" + mi.returntype); // Array som beskriver metodens argumenter. ParameterInfo[] piarr = mi.getparameters(); // Udskriv oplysninger om de enkelte argumenter. foreach (ParameterInfo pi in piarr) Console.WriteLine("\t\t0 1", pi.parametertype.tostring(), pi.name); Console.WriteLine("\t\t\tout=0", pi.isout); class EnKlasse public int Metode1() return 42; public string Metode2(string argument) return "For held: " + ( );
7 public void Metode3(ref string arg1, string arg2, out double arg3, params int[] arg4) arg3 = 42D; // arg3 er defineret som "out" og skal derfor sættes til en værdi. Console.Write("0 1 2", arg1, arg1, arg3); for (int idx = 0; idx < arg4.length; idx++) Console.Write(arg4[idx] + " "); Console.WriteLine(); I samme ånd giver funktioner som GetConstructors(), GetEvents(), GetFields() og GetProperties() oplysninger om hhv. klassens constructores, dens events, dens fields (variable) og dens properties. Funktionen GetMembers() giver information om samtlige members - dvs. metoder, properties og fields samlet under én hat. Assembly-klassen En af de grundlæggende ting, man kan bruge refleksion til, er at loade en kompileret assemply - DLL eller EXE - og undersøge hvad der er inde i den. Man kan endda oprette instanser af, og kalde funktioner på de klasser man finder på den måde! NUnit, og muligheden for at lave plugins, er gode eksempler på hvad man kan gøre, hvis man kan undersøge kompileret kode - ikke på kompileringstidspunktet, men på det langt senere runtime tidspunkt. Lad os kigge nærmere på det. Opret en DLL med følgende kode: using System; namespace RefleksionNS5 public class EnKlasse public void Metode1() Console.WriteLine("Metode1() kaldt"); public string Metode2(string argument) return argument + ( ); delegate int EnDelegate(string argument);
8 enum EnEnum interface EtInterface struct EnStruct Dette er det assembly som vi ønsker at undersøge nærmere i det følgende. Læg det i roden af C-drevet eller ret stien i den næste blok kode. Opret derefter et Console projekt: using System; using System.Reflection; namespace RefleksionNS6 class Program static void Main(string[] args) try // Indlæs assemblyet fra dens position på disken. // Andre muligheder er at indlæse den fra f.eks. GAC'en. Assembly assemply = Assembly.LoadFile(@"C:\RefleksionNS5.dll"); // Undersøg de typer der er i assemplyet. Scan4Types(assemply); catch (ReflectionTypeLoadException)... Med Assembly.LoadFile() indlæses den kompilerede DLL, sådan at vi kan kigge efter hvad der ligger i den. Det er Scan4Types() som efterfølgende gør dette: private static void Scan4Types(Assembly assemply) // Hent alle typerne fra assembly'et. Type[] typearr = assemply.gettypes(); // Undersøg dem mens de gennemløbes. foreach (Type type in typearr) // Hvilken type er det?
9 Console.WriteLine(type.Name); // Hvis det er en klasse... if (type.isclass) // Klassens navn. Console.WriteLine("\tEn klasse"); // Undersøg de metoder der er i klassen. Scan4Methods(type); // Et par andre muligheder. if (type.isenum) Console.WriteLine("\tEn enum"); if (type.isinterface) Console.WriteLine("\tEt interface"); if (type.isvaluetype) Console.WriteLine("\tEn value type (f.eks. en enum eller struct)"); Koden starter med at bede assembly'et som dens typer. Af udskriften kan man se at det ikke kun er EnKlasse som vises på denne måde - også EnDelegate, EnEnum, EtInterface og EnStruct har en type. Det er ikke kun klasser som har en type. De viste er ikke de eneste C# konstruktioner som har en type - det er blot dem af de mulige som kan optræde helt ude på namespace niveau. Derefter bruger koden properties, som IsClass, IsEnum, IsInterface og IsValueType, til at spørge ind til hvad der egentlig gemmer sig i typen. Det kan måske komme som en overraskelse at en delegate faktisk er en klasse. Men det er den, som man kan se af udskriften (når vi er færdige). Hvis programmet i øvrigt konstatere at det er en klasse, som gemmer sig bag typen, kaldes Scan4Methods() som løber igennem dennes metoder: private static void Scan4Methods(Type classtype) // Hent oplysninger om alle metoderne i klassen. MethodInfo[] methodinfoarr = classtype.getmethods(); // Gennemløb metoderne. foreach (MethodInfo methodinfo in methodinfoarr) // Udskriv metodens navn Console.WriteLine("\t\t" + methodinfo.name); // Hvis det endda er EnKlasse klassen... if (classtype.name == "EnKlasse") //... så "leger" vi lidt med den og dens metoder.
10 // Afprøv Metode1(). if (methodinfo.name == "Metode1") CallMetode1(classType, methodinfo); // Ditto for Metode2(). if (methodinfo.name == "Metode2") CallMetode2(classType, methodinfo); Denne udskriver i denne version bare metodernes navne - hvilket jo kan være interessant nok i sig selv. Activator-klassen og Invoke funktionen Hvis det endeligt konstateres at det endda er EnKlasse klassen, så går programmet et skridt videre og prøver at kalde metoderne Metode1() og Metode2(). Først koden for Metode1(): private static void CallMetode1(Type enklassetype, MethodInfo method1) // Metoden var defineret som: // public void Metode1() // Opret en instans af klassen EnKlasse. object enklasseobj = Activator.CreateInstance(enKlasseType); // Kald Metode1() på instansen. Console.Write("\t\t\tResultat: "); method1.invoke(enklasseobj, null); En klasse kan have både static-erklærede og instans metoder. I dette tilfælde er der kun tale om instansvariable. For at kalde sådanne metoder skal man først have en instans - dvs. et objekt af klassen. Normalt ville man f.eks. kalde Metode1() på denne måde: EnKlasse ek = new EnKlasse(); ek.metode1(); Det kan vi imidlertid ikke gøre i dette tilfælde. Det første problem er at vi faktisk slet ikke har inkluderet definitionen af EnKlasse i vores konsol applikation. Husk på at EnKlasse jo bare er repræsenteret ved en type som vi tilfældigvis fandt i en DLL som vi loadede direkte fra harddisken. Alligevel kan vi lave en instans af denne klasse vha. refleksion. Det gør Activator-klassen med denne kommando:
11 object enklasseobj = Activator.CreateInstance(enKlasseType); Det kunne være fristende at skrive: EnKlasse enklasseobj = Activator.CreateInstance(enKlasseType); Men den går heller ikke. EnKlasse-definitionen er jo som sagt ikke inkluderet i vores applikation. Her er det så på sin plads at nævne en smule om constructoren: I EnKlasse-koden er der ikke angivet nogen constructor. Activator.CreateInstance() bruger derfor klassens default-constructor. En klasse har altid en costructor, og hvis man ikke selv har angivet en så vil.net selv tilføje en. Det er den man får udfør nor man skriver: new EnKlasse(); Hvis man selv har udvidet klassen med en eller flere constructore, har man mulighed for at kalde nogen af overload versionerne af CreateInstance() for at få Activator-klassen til at bruge dem i steder for defaultconstructoen. Vi har også en MethodInfo som beskriver den metode vi ønsker at køre; et objekt af typen MethodInfo har en Invoke() metode. Syntaksen er lidt sjov - essentielt set beder man metoden om at køre sig selv fra instansen af klassen: object enklasseobj = Activator.CreateInstance(enKlasseType); method1.invoke(enklasseobj, null); hvilket altså svare nogenlunde til dette: EnKlasse enklasseobj = new enklasseobj() enklasseobj.metode1(); fordi method1-argumentet, i kaldet til CallMetode1(), i dette tilfælde repræsenterer en MethodInfo for metoden Metode1(). Tjek selv efter hvor den kaldes i Scan4Methods() ovenfor. Koden for at kalde Metode1() var relativt simpel. Dette skyldes at den hverken tager argumenter eller returnere noget som resultat af kaldet. Der skal lidt mere med i kaldet af Metode2():
12 private static void CallMetode2(Type enklassetype, MethodInfo method2) // Metoden var defineret som: // public string Metode2(string argument) // Opret en instans af klassen EnKlasse. object enklasseobj = Activator.CreateInstance(enKlasseType); // Et array af argumenter til metoden. Der skal bruges // et array også selv om der som her kun er et enkelt // argument, nemlig en string. object[] parameters = "Lykken er: " ; // Kald Metode2() på instansen med parametrene // i arrayet. Gem returværdien i resultobj. object resultobj = method2.invoke(enklasseobj, parameters); // Vi ved at det faktisk var enklasseobj string. string resultstr = resultobj as string; // Udskriv resultatet. Console.WriteLine("\t\t\tResultat: " + resultstr); Argumenterne skal serveres som et array af objekter. Dette kan selvfølgelig godt virke lidt som overkill, hvis der nu kun er ét argument som det er tilfældet her. Ovenfor, for Metode1() brugte jeg i øvrigt bare en null på denne plads. Resultatet returneres i et objekt. Dette castes til en string og udskrives. Jeg har "snydt" lidt her og brugt at jeg kender metoderne på forhånd. Både metodernes argumenter, typerne og antallet af dem, samt deres returtype var kendt på forhånd. I et tidligere eksempel viste jeg hvordan man kunne detektere disse oplysninger på runtime tidspunktet. Attribute-klassen Refleksion handler primært om metadata - hvad kan klasser, interfaces, metoder, fields, osv. fortælle om sig selv. Alle disse ting er indbygget i.net frameworket på forhånd. Man har imidlertid selv tilføje oplysninger. Dette gøres vha. attributter - hvilket blot er klasser som arver fra Attribute-klassen. Du har sikkert allerede stødt på attributter uden at vide det. F.eks. hvis du har set en af disse linjer i noget af den kode du har været igennem: [assembly: AssemblyTitle("ReflectionNS6")] [DllImport] [Obsolete] [Serializable] [STAThread]
13 [Test] Attributter er en måde at hægte ekstra metadata på en klasse uden ellers at ændre den måde selve klassen fungere på. Normalt er de simpelthen en slags besked til andre programmer om at behandle klassen på en speciel måde. Det nævnte NUnit bruger attributter til at markere om noget er en klasse med test-metoder (TestFixtureAttribute) og om en given metode i en klasse er en test (TestAttribute). Hvis vi selv skulle lave en lille NUnit klon, kunne starten på denne se nogenlunde sådan her ud: using System; using System.Reflection; namespace NUnitKlon [AttributeUsage(AttributeTargets.Class)] class TestFixtureAttribute : Attribute [AttributeUsage(AttributeTargets.Method)] class TestAttribute : Attribute... Det er en konvention at attributten navngives med et "Attribute" sidst i navnet. Læg i øvrigt mærke til at der endda er brugt attributter på definitionen af de to attributter. I dette tilfælde betyder det at TestFixture kun kan bruges på klasser og at Test kun kan bruges på metoder. Under normale omstændigheder ville man have sine tests liggende i en separat DLL og ikke blande dem sammen med NUnit koden. Lad os se bort fra det, og med det sammen definere to klasser med test metoder i: [TestFixture] class UnitTestSuite1 [Test] public void Test1() Console.WriteLine("Test1 udført."); [Test] public void Test2() Console.WriteLine("Test2 udført."); [TestFixture] class UnitTestSuite2 [Test] public void TestX() Console.WriteLine("TestX udført.");
14 public void TestY() Console.WriteLine("Bliver ikke testet."); Læg mærke til at der skrives [TestFixture] og [Test] i stedet for [TestFixtureAttribute] og [TestAttribute]. Det er faktisk.net som tillader at man kan udelade "Attribute" hvis man ønsker det. Herefter selve programmet, som starter med at indlæse sig selv og skanne for typer: class Program static void Main(string[] args) // Load dette assembly... Assembly thisassembly = Assembly.GetExecutingAssembly(); //... og led alle typerne igennem. Scan4Types(thisAssembly);... Programmet går målrettet efter at finde de klasser som er dekoreret med en TestFixture attribut. Dette er de klasser hvor at der er test i. Ved at markere klasserne med attributten undgår man at skulle lede samtlige klasser igennem efter noget som kunne ligne en test metode - man kan dermed gå målrettet efter dem: private static void Scan4Types(Assembly thisassembly) Type[] typearr = thisassembly.gettypes(); foreach (Type type in typearr) // Er det en klasse som er dekoreret med en TestFixtureattribut. if (type.isclass && IsTestFixture(type)) // Led alle metoderne igennem. Scan4Tests(type); private static bool IsTestFixture(Type type) // Hent alle de attributter som er dekoreret med en TestFixtureAttribute. object[] attrarr =
15 type.getcustomattributes(typeof(testfixtureattribute), false); // Returnere sand hvis der mindst er en. Ellers false. return (attrarr!= null && attrarr.length > 0); Når programmet har fundet en passende klasse skannes den for metoder som er markeret med [Test]. Ved at skelne disse fra dem som ikke har denne attribut, kan man skelne de rigtige tests far de andre metoder (hjælpe metoder): private static void Scan4Tests(Type type) MethodInfo[] metharr = type.getmethods( BindingFlags.Public BindingFlags.Instance BindingFlags.DeclaredOnly); foreach (MethodInfo meth in metharr) // Er det en metode dekoreret med en Test-attribute? if (IsTest(meth)) // Kør testen. RunTest(type, meth); false); private static bool IsTest(MethodInfo meth) // Hent alle de attributter som er dekoreret med en TestAttribute. object[] attrarr = meth.getcustomattributes(typeof(testattribute), // Returnere sand hvis der mindst er en. Ellers false. return (attrarr!= null && attrarr.length > 0); Til sidst køres de test-metoder der er fundet:... private static void RunTest(Type type, MethodInfo meth) object testfixture = Activator.CreateInstance(type); meth.invoke(testfixture, null);
16 I sin nuværende form indeholder koden ikke noget tjek af at test-metoderne rent faktisk er på formen: public void MethodeNavn()... Der er et par enkelte andre steder hvor programmet ligeledes kunne strammes om, men det viste burde forhåbentlig vis demonstrerer grundprincippet. Efterord Ovenstående har blot ridset overfladen af nogen af de muligheder man har: F.eks. kan man også få fat i selve MSIL koden. Eller man kan endda generere ny kode på runtime tidspunktet. Jeg håber dog at det er nok til at du har fået blod på tanden til at gå videre. Kommentar af miclarsen d. 12. Feb Kommentar af bertelsenbo d. 15. Feb Dækker det essentielle og er godt forklaret Kommentar af sph1nx d. 06. Aug
Plugin-arkitektur med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Plugin-arkitektur med.net Denne artikel viser hvordan du kan lave en plugin-arkitektur i dit program. Gør det muligt for andre at skrive udvidelser til
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereMETODER ARV KLASSER. Grundlæggende programmering Lektion 5
METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereSWC Elementer i klassedefinition
SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...
Læs mereMapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.
MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig
Læs merePROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Læs mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereRegister-databasen med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Register-databasen med.net Mange programmer gemmer deres konfiguration-data i register-database. Denne artikel viser hvordan du - f.eks. vha. C# - henter
Læs mereATTRIBUTES MULTITHREADING DYNAMIC PROGRAMMING. Grundlæggende programmering Lektion 11
ATTRIBUTES DYNAMIC PROGRAMMING MULTITHREADING Grundlæggende programmering Lektion 11 1 ATTRIBUTES Information om adfærd 2 ATTRIBUTES En attribut er en deklarativ tag, der bruges til at formidle information
Læs mereCodeDOM - Dynamisk generering og kompilering af kode
Denne guide er oprindeligt udgivet på Eksperten.dk CodeDOM - Dynamisk generering og kompilering af kode Med CodeDOM kan man på runtime generere kode, kompilere det og derefter afvikle det. I denne artikel
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereStudiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereAt klippe en streng over på det mest hensigtsmæssige sted
Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereProgrammering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereDen forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af
Læs mereLØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4
LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor
Læs mereIndledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs mereDebugging ivs. Praksis eksempel. Assemblies Attributes Dynamic programming. Github. Multithreading. Grundlæggende programmering Lektion 6
Praksis eksempel Assemblies Attributes Dynamic programming Multithreading Debugging ivs Github Grundlæggende programmering Lektion 6 Praksis eksempel ShareX, et skærm-optager program ShareX er et gratis
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Læs mereKursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereMetoder Klasser Arv. Operatorer Løkker. Praksis eksempel. Grundlæggende programmering Lektion 3
Praksis eksempel Operatorer Løkker Metoder Klasser Arv Grundlæggende programmering Lektion 3 Praksis eksempel Et program der benytter Unity til at lave et 3D spil Praksis eksempel Spil der benytter Unity
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mere.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereIntroduktion til AOP i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til AOP i C# Denne artikel giver en introduktion AOP (Aspect Oriented Programming) i C#. Den forudsætter et pænt kendskab til programmering,
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereclass subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.
Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer
Læs mereTredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Læs mereDM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7
DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4
Læs mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereOm binære søgetræer i Java
Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret
Læs mereEksempel: et ordresystem note 5 Lagdeling s. 1
Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereLøsningsforslag til Camp Let. Case Beskrivelse: Camp Let
Løsningsforslag til Camp Let Case Beskrivelse: Camp Let Firmaet Camp Let har til formål at udleje forskellige typer transportable ferieboliger. Det drejer sig i øjeblikket om campingbusser, campingvogne,
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereListen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereAfsending af s vha. ASP
Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mere.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.5 og C# 5.0 Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 11.
Læs mereArrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger
Læs mereWINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9
EVENTS INTERAGEREN MED FIL SYSTEMET WINDOWS FORMS Grundlæggende programmering Lektion 9 1 EVENTS Der sker ting når der sker ting 2 EVENTS Events er brugerhandlinger såsom tastetryk, klik, musebevægelser,
Læs mereC# spil (del 1) - Kom i gang med et simpelt spil
Denne guide er oprindeligt udgivet på Eksperten.dk C# spil (del 1) - Kom i gang med et simpelt spil Denne artikel starter helt fra grunden (med GDI). Den viser hvordan man undgår flimmer, og hvordan man
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereHvilket sprog er hurtigst
Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereODIN-webservice ændringer release 2010 v2.0
DOKUMENTATION OG VEJLEDNING ODIN-webservice ændringer release 2010 v2.0 Indholdsfortegnelse 1. Nye webservice metoder... 2 1.1 Anvendelse af køretøjer og personel fra fremmede beredskaber ifm. indberetning
Læs mereOverblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java
OOP1 Java intro. Klasser, objekter, interfaces, nedarvning, Association, Aggregation og Composition mvh. Try and catch exceptions. Package Intro. til jar filer. Overblik Compile-time Environment Run-time
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereDenne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)
Denne guide er oprindeligt udgivet på Eksperten.dk Batch genopfriskning Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Skrevet den 03.
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave
Læs meredintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereKursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Læs mereTidligere gik denne i øvrigt under navnet DLINQ for Database LINQ, og man kan finde masse materiale om emnet under dette navn på Internettet.
Denne guide er oprindeligt udgivet på Eksperten.dk LINQ for SQL med C# LINQ for SQL er en af de nye teknologier med.net 3.5. Den gør det muligt at skrive (typesikre!) database søgninger direkte i programkoden
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereIntroduktion til NAnt
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til NAnt Denne artikel beskriver NAnt, som er et værktøj til at builde.net applikationer med. Den beskriver nogle af de mest brugte NAnt
Læs mereIndholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...
Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...
Læs mereKapitel 6 Events i C#
Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel
Læs mere