Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Hantera F# källkodsfiler och varför har inte F# någon Main() metod?

Postad 2009-11-23 av Hans Sterby i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 3390, Betyg: 87%

Förord

Denna artikel är till grund för hur filerna i ett F# projekt kompileras. Ordningen har stor betydelse i F# och även vart funktionerna är definierade. Om du inte vet om det som förklaras i artikeln kommer du förmodligen att fasta när du kompilerar ditt F# program.
Innehåll
  » Hantera F# källkodsfiler.
  » Varför har inte F# någon Main() metod?
Relaterade artiklar
  » Kom igång med F# i Visual Studio 2010.
  » Värden och funktioner i F#


Hantera F# källkodsfiler.

När du väl kommer igång med F# så kommer du förmodligen att bryta upp programmet i flera filer och även flera projekt.

I F# så har det betydelse i vilken ordning projekten och filerna i projekten kompileras.
Man kan bara anropa funktioner eller klasser som redan är definierade i en fil i samma projekt eller i en fil i ett annat projekt som har kompilerats innan anropet görs från den F# fil som just kompileras.
Så om du förändrar ordningen på kodfilerna så kanske inte ditt projekt bygger, detta har att göra med "Type Inference", allt måste vara känt för kompilator vid kopilering eftersom F# är statiskt typat.

F# kodfiler är kompilerade i den ordning som dom visas i "Visual Studio Solution" fönstret, överst först och nederst sist.

Här kopileras Program.fs först sen secondFile.fs och sist third.fs.




Om det finns funktioner i second.fs och third.fs som används från Program.fs så kommer inte programmet att kompilera.
Type Inference hittar då inte funktionerna.
Du måste då flytta upp båda filerna före Program.fs för att det ska gå att kompilera.
Om också second.fs anropar funktioner i third.fs så måste third.fs flyttas före second.fs.
F# program startar alltid i sista källkodsfilen i projektet.

Om du högerklickar på en fil som du vill flytta så får du upp denna popup fönster.



Varje gång du lägger till en källkodsfil så hamnar den sist och för att filerna ska hamna i rätt ordning så måste du flytta om dom.



Varför har inte F# någon Main() metod?


Ta exemplet innan med i vilken ordning källkodfilerna kompileras.
Säg att ditt program innehåller Program.fs och second.fs och kompileringen går igenom.
Om du sen lägger till third.fs så hamnar den sist och den innehåller inte någon F# kod eller om den bara innehåller funktionsdeklarationer så går också kompileringen igenom men ditt program kommer inte att göra någonting.

Ditt program kommer att starta, visa ett konsol fönster och sen avsluta
Det är för att den sista filen i projektet är alltid den filen där programmet startar.

I sista filen så måste det vara någon kod som drar igång själva programmet.
Alltså behövs det inte någon Main() metod i F#.

Nu kan detta vara lite förvirrande att inte ha en Main() metod där programmet börjar.
Då kan du för tydlighet göra en Main() metod så vet du alltid var ditt program startar, men den måste vara definierad i den sista filen i ditt projekt.



Det går annars lika bra utan en Main() metod.
Det handlar om vanesak vilket man väljer.


Nästa artikel är en introduktion till F# syntax och handlar om värden och funktioner.

Följ mig på Twitter som TigerHasse
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
781
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies