Hej alla glada, Den snabbaste varianten för ditt exempel är : Hej Tack Sven, Varför skulle det vara snabbare för att det är Default-egenskapen? Snabbare att koda ja, men den resulterande exekveringskoden kommer ju bli densamma ändå. Dessutom är det klart rekommenderat att inte använda default-egenskaper, eftersom de inte är garanterade att vara default för all framtid. Nja Hej Cristoffer skrev Det är nog dax att börja skriva ut namnet. Har för mig att det krävs i VB.NET. Där har du inget val. Vilken kod tror du det är som körs i slutänden? Den 'inte för fru Karlsson i Åmål'-läsbara som du skrivit i ditt program, eller den maskinkod som kompileras från din kod? Vad tror du det står i den? Det finns inte precis några defaultegenskaper i den. Hej igen efter 10 glas vin default properties snabbare än att explicit sätta propertyn ??? hej Hej Jag är ledsen sven, men om du hade pluggat lite mer COM så hade du sett logiken i det hela. Jag föreslår att du läser Ted Pattisons bok: 'Programming distributed applications with COM+ and Visual Basic 6.0' innan du uttalar dig om COM teknik överhuvudtaget. När man läser Svens inlägg kommer man att tänka på följande citat: GodMorgon Igen > Sun och Borland kom igen ge dom på nyllet Ursäkta att dra upp det här igen, men jag måste bara påpeka en sak i det inlägg jag svarar på:Blir koden snabbare?
Har en fundering över om koden blir snabbar om man deklarerar en recordset eller om det brar är för att få en "snyggare" kod.
Exempel:
Private Sub Test()
Dim rsDatabasen as Recordset
Set rsDatabasen=Data1.Recordset
rsDatabasen.Edit
rsDatabasen!FieldName = "Blablabla"
rsDatabasen.Update
Set rsDatabasen=Nothing
End Sub
Alternativt:
Private Sub Test()
Data1.Recordset.Edit
Data1.Recordset.Fields("FieldName")="Blablabla"
Data1.Recordset.Update
End Sub
//ChristianSv: Blir koden snabbare?
<code>
Private Sub Test()
With Data1.Recordset
.Edit
.fields(0)="Blablabla"
.Update
End With
End Sub
</code>Sv: Blir koden snabbare?
Kul att vi är igång igen
Eftersom fields är den Defaulta egenskapen
hos recordset så blir det ännu snabbare
om man kan skriva Data1.Recordset(0)
Men ! Hur tusan skriver man detta med With ??
Private Sub Test()
With Data1.Recordset
.Edit
.fields(0)="Blablabla"
.Update
End With
End Sub Sv: Blir koden snabbare?
Jag funderade också på det när jag skrev svaret igår och vågade inte skriva .(0) = "xxx" , men det är som du säger - det snabbaste sättet.
Egentligen skulle jag inte använda .edit alls. Anledningen är att addering och radering egentlignen inte returnerar något recordset och då är det onödigt att ha ett sådant igång. Istället skulle jag skrivit något liknande detta: (har slutat använda datakontrollen)...
sql ="insert into ... (namn, gata) values('pelle','hemgatan')
data1.recordsource = sql
data1.execute
För korrekt syntax, se någon av kurserna.
/PelleSv: Blir koden snabbare?
Sv: Blir koden snabbare?
Jag letar i i gamla tips o trix och påstår
att det går snabbare att anropa den
defaulta egenskapen än de andra
tex Text1 = "Kalle" är snabbare än Text1.Text = "Kalle"
hittade ett exempel som säger att
Dim rs As Recordset
rs.fields.item(0) skulle vara det snabbaste
okidoki om detta
SvenSv: Blir koden snabbare? svar till Cristoffer
>Varför skulle det vara snabbare för att det är Default-egenskapen?
Därför att då behöver inte programmet kolla om
objektet verkligen har denna egenskap.
Om du skriver Text1.Text så måste programmet kolla
om objektet Text1 har propertie .Text för att kunna
generera ett felmeddelande om så inte är fallet.
Om man har för vana att utnyttja default egenskapen är detta
proffsigare enl min uppfattning.Man skriver kod för sig själv
och vana programmerare inte för fru Karlsson i Åmål
Nu kan det ju vara så att fru Kalsson i Åmål är en djäv...
på programmering,då vet hon att om jag skriver Label1 = "Kalle"
så avser jag objektet Label:s defaulta propertie
mvh
SvenSv: Blir koden snabbare? svar till Cristoffer
Sv: Blir koden snabbare? svar till Cristoffer
Och ja, precis som Andreas skriver så krävs det (med vissa undantag) i VB.Net att man skriver ut egenskaper. Och jag håller definitivt inte med om att det är knäppt, utan inget annat än precis som det borde vara. Det gör att man undviker buggar i kod man skriver och ännu viktigare att man slipper problem med förändrade specar i framtida kompilatorer.Sv: Blir koden snabbare? svar till Cristoffer
Kvalificerat djä.... Bull
Du låtsas titta in i framfiden det här har inte med framtiden
att göra
Än en gång Bull ... Bull Bull ..
mvh
SvenSv: Blir koden snabbare? svar till Cristoffer
Jag tycker att Ni slänger Er som "lättsinniga flickor" efter
så fort Ni hör MicroSoft
Vb Net blir aldrig något ! !
SvenSv: Blir koden snabbare? svar till Cristoffer
Det går lite emot all logik, måste ju kolla upp vilken som är default propertyn först. Inget ting som instinktivt 'vets' av runtimen.. Vart i vtablen skall den peka ??? Det har den ingen aning om, så då får den först kolla vilken egenskap sedan adress.. Istället för bara adress..
Vilket gör att det blir långsammare i slutändan ..
Gjorde en benchmark på det där för ett år sedan men kommer inte exakt ihåg resultatet. Men om man tittar på tekniken bakom com så ...
Sen måste jag säga att VS.NET definitvt kommer att bli något av flera anledningar.
Hela frameworken är omarbetad och genomtänkt. Man kanske inte gillar vissa små dialekt förändringat i språket, tough luck. Om du sven, kollar på frameworken ordentligt och tittar på tanken bakom, kommer du att se att det inte barar beror på ms att det kommer bli populärt. VB6 däremot är igentligen bara ett hack, ett av världens bästa hack, men dock ändå ett hack. Det är också en av anledningarna till varför de måste gå ifrån det tänket.
Sedan tycker jag att du borde ha åldern och mognaden inne att uppföra dig på ett forum.. Sv: Blir koden snabbare? svar till Cristoffer
>Sedan tycker jag att du borde ha åldern och mognaden inne att >uppföra dig på ett forum..
Kvalificerat "bull" Igen klart att jag får säga att MicroSoft är i
princip "skit" det finns bättre lösningar på allt dom gjort.
mvh
SvenSv: Blir koden snabbare? svar till Cristoffer
Du måste ju vara alldeles ute och cykla.
>Det går lite emot all logik, måste ju kolla upp vilken som är default >propertyn först.
Tror du inte att att han som skapade objektet vet vad barnet heter??
och vet vilka egenskaper barnet har ?. Nu ankommer det på dej
om du vill använda detta objekt att du vet objektets parametrar .
Sedan pratar Ni om kompilering ,Så länge det finns en runtime tolk i
bakgrunden förtjänar inte VB eller Vb.net att ordet kompilering används.
Dixi
SvenSv: Blir koden snabbare? svar till Cristoffer
Varför tror du annars att rs.fields.item(0) sägs vara snabbaste metoden ??? (nu är det ungeför lika snabbt som rs.fields(0).value men iaf)
Sedan är det inte speciellt god praxis att vräka ur sig saker som horor och bull på en allmänn öppen disskusion, det borde du fatta också .. Sv: Blir koden snabbare? svar till Cristoffer
Felet med vår värld är att de dumma är så säkra på sin sak och de kloka så fulla av tvivel. - Bertrand RussellSv: Blir koden snabbare? svar till Cristoffer
Har det vat nåt ?
Jag blir så överaktiv när jag märker att någon tar
MicroSofts nya påhitt i försvar och i varma ordalag
berömmer deras produkter.Bakåt kompabiletet är
väl en hedersak.Hoppas att programmerare ser sig
om efter andra lösningar än dom Ms erbjuder.
Sun och Borland kom igen ge dom på nyllet.
>Felet med vår värld är att de dumma är så säkra på sin sak och de >kloka så fulla av tvivel.
Det citatet känner jag igen ,det har Bertrand stulit från mig
lite skamsen
SvenSv: Out of Topic
När ordet dum kommer upp kommer jag att tänka
på en replik som jag använder.
När någon säger "Tycker du att jag är dum"
"Nej men jag tror inte att du några studieskulder"
mvh
SvenSv: Blir koden snabbare? svar till Cristoffer
Visst, när så sker kan man sitta och beklaga sig över sämre lösningar. Men precis som du själv skriver så har Sun och Borland ingenting som slår dem på nyllet för tillfället, alltså kan du lugna ner dig lite i dina kommentarer ang. Microsofts produkter. Om du inte gillar dem, vad gör du här då? Du skriver även att Microsofts produkter är skit men att du tycker att de gör fel som inte håller fullständig bakåtkompatibilitet. Varför tror du de gör det? Jo, för att kunna förbättra produkten så otroligt mycket som de gör.
Vidare har diskussionen precis som du skrev nedan kommit lite från sitt ursprung, så för att återkoppla till den riktiga diskussionen: Hur kan du som 'MS-hatare' sitta och försvara en riktigt dålig funktion i VB, som inte gör annat än skapar möjligheter till buggar samt ger sämre prestanda (vilket jag hoppas att vi alla, inklusive dig själv) kommit fram till i denna diskussion.Sv: Blir koden snabbare? svar till Cristoffer
> Sedan pratar Ni om kompilering ,Så länge det finns en runtime tolk i
bakgrunden förtjänar inte VB eller Vb.net att ordet kompilering används.
Samma sak gäller Java då? Och SmallTalk?