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 / Forum översikt / inlägg

Posta nytt inlägg


MinValue och MaxValue inte konstanter?

Postades av 2006-06-29 13:29:25 - Per Hultqvist, i forum asp.net generellt, Tråden har 4 Kommentarer och lästs av 540 personer

Alla numeriska datatyper samt datum har numera två properties som heter MinValue och MaxValue, och de är ju åtminstonde ur användarens (programmerarens) synvinkel konstanter. Men ändå kan man inte använda dessa som konstanter i vissa sammanhang :
<code>
' Ger fel : Error 1 Constant expression is required.
Public Sub Test(Optional Byval datum As Date=Date.MinValue)

End Sub
</code>
Det går heller inte att komma runt genom att deklarera en egen konstant :
<code>
Public Const MINVALUE As Date = Date.MinValue
</code>
Detta ger samma fel.

Kan någon förklara varför det är så här? Vad är den bakomliggande orsaken till detta? Är inte MinValue och MaxValue deklarerade som konstanter "internt" i datatypen? Irriterande är det i alla fall, men om jag vet varför så kanske jag kan släppa detta :-)

[Edit: La detta ".Net framework" eftersom samma problematik finns i C#]


Svara

Sv: MinValue och MaxValue inte konstanter?

Postades av 2006-06-29 17:25:53 - Håkan Borneland

Hej Per!

Detta fungerar i C# iaf.
<b>Console.WriteLine("Int32 = {0} DateTime = {1}", Int32.MinValue, DateTime.MinValue);</b>
Går lika bra att tilldela variabler också.
T.ex.
<b>int i = Int32.MinValue;
DateTime dt = DateTime.MinValue;
Console.WriteLine("i = {0} dt = {1}", i, dt);</b>

//Håkan


Svara

Sv:MinValue och MaxValue inte konstanter?

Postades av 2006-06-29 20:05:57 - Per Hultqvist

Well, dina exempel är inte samma sak som de jag visade. Dock har ju c# inte optional parameters så där har man ju inte det ena problemet men du kan fortfarande inte deklarera en konstant så här :

private const System.DateTime date = System.DateTime.MinValue;

Då får du felet :
<info>
Error 1 The type 'System.DateTime' cannot be declared const
</info>


Svara

Sv: MinValue och MaxValue inte konstanter?

Postades av 2006-07-02 11:11:43 - Roger Alsing

Anledningen att man vill undvika att göra det till konstanter i frameworks är att konstanter tilldelas sitt värde vid compiletime. dvs värdet kompileras in i din assembly.

när någon sedan använder din assembly och använder din konstant , så kommer konstantens värde kompileras in i även denna assembly.

om du sedan släpper en ny version av din assembly , där du ändrar värdet på din konstant.
då skulle man inte kunna byta ut din gamla assembly mot din nya assembly i användarens app eftersom dennes app har det gamla konstantvärdet hårt inkompilerat i sig och skulle då kunna resultera i div buggar när det värdet inte längre stämmer med konstanten i din assembly.

dvs , user appen skulle behöva rekompileras varje gång du ändrar dina konstanter i ditt framework.


samma sak gäller .net som framework.
säg att .net framework 3 skulle ha större range för sina datetime typer , då skulle gamla apps inte längre fungera med det nya frameworket.


använder man statiska fält istället så får man inte problem med de bitarna eftersom värdena i användarens app inte längre kommer kompileras in direkt i koden utan hämtas från ditt framework varje gång de behövs.
(tror det här står i ms guidelinen för framework design )


//Roger


Svara

Sv:MinValue och MaxValue inte konstanter?

Postades av 2006-07-02 13:30:38 - Per Hultqvist

Tack för den förklaringen, och när jag läser detta så ringer det en klocka någonstans. Jag känner igen det här resonemanget så jag har nog hört det förut men glömt bort det. Nu kanske jag kan sova lugnt om nätterna :-)


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 616
27 953
271 709
5 729
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