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


Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-25 21:00:48 - Fredrik Leufkens, i forum vb.net, Tråden har 5 Kommentarer och lästs av 816 personer

hej...

Jag har en subrutin som jag skrivit som skall plocka in en cotrolcontainer som argument och resetta textboxarna som finns i den...

Men det händer inte "med en gång" när man kör funktionen, så jag funderar på om den är innefektiv på något sätt?

Om nån hugad vb.net-räv kan förklara om och gärna varför eventuellt den är innefektiv...

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Shared Sub ResetTextboxes(ByVal Containerctrl As System.Windows.Forms.Control)
    Dim antalkontroller As Integer = Containerctrl.Controls.Count
    Dim ctrlcheck As New Control
    For i As Integer = 0 To antalkontroller - 1
        Dim err As Integer = 0
        Try
            ctrlcheck = CType(Containerctrl.Controls.Item(i), TextBox)
        Catch ex As InvalidCastException
            err = 1
        End Try
        If err = 0 Then
            Containerctrl.Controls.Item(i).Text = ""
        End If
    Next


Svara

Sv: Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-25 22:51:40 - Thomas Vanhaniemi

Det är troligen din Try Catch som tar tid...
Man ska alltid försöka undvika dessa fall.

Du kan skriva funktionen som

?
1
2
3
4
5
6
7
Public Shared Sub ResetTextboxes(ByVal Containerctrl As System.Windows.Forms.Control)
    For Each Control As Control In Containerctrl.Controls
        If Control.GetType() Is GetType(TextBox) Then
            Control.Text = ""
        End If
    Next
End Sub


Svara

Sv:Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-26 02:12:45 - Per Hultqvist

Lite ringrostig men räcker det inte med :

?
1
2
3
4
5
6
7
Public Shared Sub ResetTextboxes(ByVal Containerctrl As System.Windows.Forms.Control)
    For Each Control As Control In Containerctrl.Controls
        If Control Is TextBox Then
            Control.Text = ""
        End If
    Next
End Sub


Svara

Sv: Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-26 09:49:00 - Thomas Vanhaniemi

Per, kan hända att det räcker med Is TextBox. Det beror på hur VB gör...
Om båda sidorna är instanser av någon klass kontrollerar Is i alla fall om det är samma instans.

Det är tydligare att använda GetType för då är man säker på vad man jämför.


Svara

Sv:Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-26 19:04:19 - Fredrik Leufkens

Kan inte någon förklara skillanden mellan = och "is"...?


Svara

Sv: Ineffektiv kod? Förklara gärna vad som gör den långsam...

Postades av 2007-05-26 22:08:25 - Thomas Vanhaniemi

Svårt att förklara skillnaden då de har olika betydelse i olika sammanhang.
Men Is används främst för att kontrollera referenstyper, alltså om två instanser av någonting är identiska, alltså att de har samma plats i minnet.
Is används också för att kontrollera om någonting är Nothing (Is Nothing), alltså inte alls upptar något minne. Det kan även användas för att jämföra två type objekt, som i mitt exempel. Kan också fungera med jämförelsen i Pers exempel, så där jämförs alltså typerna då du anger ett objekt på ena sidan och en klass på andra.

= kan användas för att tilldela eller jämföra värden, till exempel tal och strängar. I .NET 2.0 kan man överlagra operatorer och därmed ge dessa annan betydelse.


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 570 588
27 958
271 741
5 818
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
Expand
next previous
Close

Previous

0/0

Next