Hur deklarerar man globala konstanter i asp.net ? Går fortfarande; Simon du får gärna utveckla detta. Hur ska man slippa undan detta? Se koden nedan: Inte behöver du instansiera din klass. Knappast enkelt. Enkelt är en subjektivt bedömning. Ingen fientlighet mot .net Försöker med att lägga konstanter i samma klass som de även tillhör. För att slippa varningar bör du skriva: Här diskuteras en del av ditt problem.Globla konstanter
Använder VS 2005
I 2003 kunde man ha dem i en class men nu går det inte.
För när jag skrev en del i C så hade man alla konstanter i en include fil men hur gör man på rätt sätt med asp.net och VS 2005?
Skriver med Basic dialekt
Please?
mvh RolandSv: Globla konstanter
public class KonstantKlassen
public const MinKonstant as Int = 123
end class
Sv:Globla konstanter
Din class:
Public Class KonstantKlassen
public Const MinKonstant As Integer = 123
end class
För att använda konstanten i tex form1:
Dim KonstantKlassen As New KonstantKlassen
MsgBox(KonstantKlassen.MinKonstant.ToString)
Du kan i stället lägga dina konstanter etc i en modul så kan du använda dessa direkt.
Sv: Globla konstanter
Detta enkla konsol program demonstrera detta:
Module Module1
Public Class KonstantKlassen
Public Const MinKonstant As Integer = 123
End Class
Sub Main()
Console.Write("KonstantKlassen.MinKonstant = {0}" & vbCrLf, KonstantKlassen.MinKonstant)
'Eller för att förtydliga det:
Dim X As Integer = KonstantKlassen.MinKonstant
Console.Write("KonstantKlassen.MinKonstant = {0}" & vbCrLf, KonstantKlassen.MinKonstant)
Console.Read()
End Sub
End Module
Sv:Globla konstanter
Jämför med vanlig h filer som man använder i C
Dessa gör man include på och ingår vid kompilering där konstanterna byts ut till de värden de har i h-filen
Enkelt.
Hittar inget sådant i .net
Kanske inte tillåtet då det är objektorienterat.
mvh RolandSv: Globla konstanter
Den gör inget komplext bara gör två utskrifter i konsollen. Den har få rader kod.
Så jag tycker jag tycker det är en enkelt konsol applikation. Jag syftar med enkel på applikationen inte hur man hanterar globala konstanter.
Så du du syftar på att det inte är enkelt att använda en kostant i .net. Att det skulle vara enklare i en h/headerfil.
Tja, i .NET slipper du göra en inkludera. Du behöver inte ens känna till filnamnet. Bara vilken namespace klassen tillhör och i ditt projekt ha en referens till den.
Du måste däremot inkludera headerfilen i samtliga filer du vill ha den tillgänglig.
Så jag kan inte se varför du tycker detta är enklare?
Låter som om du bar uttrycker ogrundad fientlighet mot .NET.Sv:Globla konstanter
Vill lära mig och hitta sådant som var smidigt i gamla C mm. samt allt nytt användbart som inte fanns i gamla asp och vb6.
Men vill inte krångla till något pga egen okunskap.
Gjort en del i VS2003 som jag troligen borde gjort annorlunda då jag nu får massa warnings mm när jag uppgraderar.
Suger åt mig tippsen som en svamp.
mvh RolandSv: Globla konstanter
Alltså har en klass för att hämta texter mm från en databas.
Varje text är deklarerad med en konstant
Så här gör jag i programmet som ska anropa klassen med texter från databasen
Dim BT As New Beskrivning() 'här deklareras användandet av klassen "Beskrivning"
lblEfternamn.Text = BT.Get_Text(BT.B_USER_EFTERNAMN)
Deklarerad konstant i klassen Beskrivning
Public Const B_USER_EFTERNAMN As Integer = 7
I VS 2003 gick detta bra men nu får jag mängder av Warnings
Access of shared member through an instance; qualifying expression will not be evaluated
Gör fel men hur borde jag göra?
mvh RolandSv:Globla konstanter
Dim BT As New Beskrivning() "
lblEfternamn.Text = BT.Get_Text(Beskrivning.B_USER_EFTERNAMN)
Fast jag i detta fall tycker jag det finns något i din kod som tilltalar mig.
Vill man känna till vilken klass BT är när man anropar Get_Text?
Man kan ju se klassnamnet som ett namspace. Då är det kanske lättare att acceptera att konstante ligger under klassens namspace för att undvika konflikter med andra klassers konstanter.
Man kan skriva kortar konstant namn. Men den fullt kvalificerade namnet till konstanten kanske blir något längre.
Sv: Globla konstanter
http://discuss.joelonsoftware.com/default.asp?dotnet.12.353213.14