är det bra att inkludera mina funktioner i en module?
module och funktioner
14 svar · 478 visningar · startad av jboy_87
Det beror på användningsområdet.
Menar du module som i assembly (DLL-fil)? I så fall är svaret oftast självklart.
...om du är ute efter skillnaden mellan att lägga till en "Module" eller en "Class" så kommer här lite punkter:
- En Modul kan inte instansieras. En klass däremot kan instansieras flera gånger och på så vis innehålla olika värden för olika data.
- En modul kan varken ärva en annan modul/klass eller ärvas av någon annan modul/klass.
En modul är helt enkelt en samling av metoder och konstanter som gäller för hela din applikation. Då modulen inte behöver instansieras blir resultatet ungefär som en auto-instansierad klass som alltid finns tillgänglig från alla andra moduler och klasser i ditt projekt.
Nackdelen med en modul är som sagt att den inte kan utnyttja OO, och den kan heller inte återanvändas som ett eget Assembly såsom en klass kan. Däremot kan det vara en bra samlingspunkt för metoder som du vet BARA är generella för en viss applikation och där värderna alltid förblir samma (konstanter tex).
kompileras inte filen i själva assemblyn eller?
Jo, den kommer att kompileras in i samma assembly som det projekt där du lagt den.
men när jag anropar funktionen utanför min codebehind så funkar det inte?
<%# left(DataBinder.Eval(Container, "DataItem.info").tostring,1) + alert("sadsadas")%>
felmeddelande:
Name 'alert' is not declared.
Ligger din module i samma namespace då?
Annars måste du importera det.
vad menar du med att den ligger i samma namespace?
men när jag kör med codebehind så funkar det utan att ha importerat nån namespace men inte utanför koden vad är det jag ska skriva för att importera modulen?!
ingen som vet?
jaha så men jag har redan importerat det men funkar inte endå :s i min codebehind så funkar det men inte utanför codebehind?
Har du importerat det i .aspx sidan?
jepp <%@ Import Namespace="project.funktioner"%>
nu blir det knass får upp!
Compiler Error Message: BC30389: 'project.funktioner' is not accessible in this context because it is 'Private'.
löste det med
Public Module funktioner