Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB.Net] Se si crea una classe l'esecuzione è lenta

    Ciao amici,
    per imparare ho creato una semplice classe in VB.net. In uscita mi deve dare alcuni valori scritti con l'istruzione "console.writeline".
    Però l'esecuzione del codice mi sembra lenta, diversamente da quanto succedeva in VB6. Come mai?
    Inoltre non ho capito a cosa serve l'istruzione "console.readline", visto che, anche se non la metto, nella finestra di output ho i valori richiesti.
    Grazie.
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Devi postare il codice per consentirci di determinare i motivi per cui riscontri i problemi denunciati.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    codice:
    Public Class Car
        public color As String
        Private _speed As Integer
        Private _numberOfDoors = 5
        Public HorsePower As Integer
    
        ReadOnly Property speed() As Integer
            Get
                Return speed
            End Get
        End Property
        Sub Accelerate(ByVal accelerateBY As Integer)
            _speed += accelerateBY
        End Sub
        Property NumberOfDoors() As Integer
            Get
                Return _numberOfDoors
    
            End Get
            Set(ByVal Value As Integer)
    
                If Value >= 2 And Value <= 5 Then
                    _numberOfDoors = Value
                    MsgBox(Value)
                End If
            End Set
        End Property
        Public Function IsMoving() As Boolean
            If _speed = 0 Then
                Return False
            Else
                Return True
            End If
        End Function
        Overridable Function CalculateAcceleratorRate() As Double
            Return 4.2
        End Function
        Sub New()
            color = "White"
            _speed = 0
            _numberOfDoors = 5
    
        End Sub
    End Class
    codice:
    Module Module1
        Sub main()
            Dim myCar As Car
            myCar = New Car
    
    
    
            myCar.Accelerate(0)
            If myCar.IsMoving Then
                Console.WriteLine("The car is moving")
            Else
                Console.WriteLine("The car is not moving")
    
            End If
            Console.WriteLine(myCar.color)
            Console.ReadLine()
            DisplayCarDetails(myCar)
        End Sub
        Function DisplayCarDetails(ByVal mycar As Car)
            mycar.HorsePower = 240
    
            Console.WriteLine("Color " & mycar.color)
            Console.WriteLine("number of doors " & mycar.NumberOfDoors)
            Console.WriteLine("Current speed " & mycar.speed)
            Console.ReadLine()
        End Function
    
    End Module
    codice:
    Public Class SportsCar
        Inherits Car
        Public Weight As Integer
        Function GetPowerToWeightRatio()
            Return CType(HorsePower, Single) / CType(Weight, Single)
        End Function
        Overrides Function CalculateAcceleratorRate() As Double
            Return 4.2 * GetPowerToWeightRatio()
        End Function
        Sub New()
            color = "Green"
            NumberOfDoors = 2
        End Sub
    End Class
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non ci vedo nulla di particolare.

    In cosa consiste la lentezza dell'esecuzione?

    Ci sono dei tempi precisi?

    Si parla di esecuzione effettiva o di "startup" dell'applicazione?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Ciao alka,
    inanzitutto grazie dell'intervento.
    Non ho capito cosa intendi per "startup". Comunque io l'applicazione la eseguo da progetto. A parte il fatto che non ho capito se, durante l'esecuzione da progetto, l'applicazione in VB.net viene anche compilata.
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da giorgiogio48
    Non ho capito cosa intendi per "startup". Comunque io l'applicazione la eseguo da progetto. A parte il fatto che non ho capito se, durante l'esecuzione da progetto, l'applicazione in VB.net viene anche compilata.
    Intendevo chiedere se la lentezza è nell'avvio del programma o nel suo "durante".

    L'applicazione viene compilata (anche se in linguaggio intermedio).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    No, l'avvio del programma è veloce. I tempi sono lunghi quando clicco sul triangolo blu e avvio l'applicazione. Comunque ho fatto il confronto con una applicazione dove c'era solo da avviare un form con un pulsante che visualizzava un messaggio. I tempi erano molto più brevi. Forse ricordo male il comportamento nel caso fossero richiamate delle classi in VB6. Comunque i tempi mi sembrano lunghi lo stesso. Ma forse imparerò meglio queste cose in seguito.
    Ciao.
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Secondo me, non esiste alcun problema reale.

    L'ambiente genera sempre un eseguibile, e senz'altro questo processo richiede più tempo rispetto al "lancio classico" che avveniva in VB6 (benché poi questo ambiente ci impiegasse un sacco di tempo a creare un eseguibile, quando necessario).

    A parte questo fattore e un tempo tendenzialmente maggiore ad avviarsi, l'esecuzione di un'applicazione non dovrebbe risentire di alcun tipo di rallentamento, soprattutto riguardo codice estremamente semplice come quello presentato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Grazie alka.
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.