Gå til innhold

WebBrowser1.IsBusy + DoEvents? i .NET :S ?


Anbefalte innlegg

Siden vi da er i .net-forumet drister jeg meg å komme med noe som gjelder kun C# (uten at jeg skal beskyldes for drittkasting):

 

C# er i utgangspunktet strict, og vil ikke la deg skrive noe annet enn if(bool)

 

Så hvis man skriver C#, så ser jeg ikke hvordan du i all verden kan tyde det feil, altså blir det mest logisk OG ensbetydende med if(alive){}

Lenke til kommentar
Videoannonse
Annonse

if tar bare bool, hvis du har skrudd av option strict, så vil den automatisk konvertere single til bool (int16)

på samme måte som du kan skrive

Dim text as String = ""
Dim value As Single = 120.04f
text = "32" + value

 

Dette uttrykket er fullstendig meningsløst når man ser på det...

Hva er det brukeren prøver å gjøre egentlig? skal han legge sammen teksten 23 og 120.04f?

Visual Basic prøver seg fram her, den tester først om text er en verdi, og hvis det er tilfellet, legger den verdiene sammen.

Hvis ikke, legger den sammen teksten.

 

Dette burde det vært lang fengselsstraff eller dødsdom for å tillate.

 

Men som sagt, dersom du ikke er fullstendig nybegynner, og skrur av option strict, så vil det gi compile feil.

 

Det går ikke an å teste noe annet en bool i .NET

Det er bare i C/C++ at man kan teste på integer, men i VB.NET konverterer den altså verdien for deg hvis du tillater det, noe man ikke burde gjøre.

Tvetydig kode er ekstremt dårlig praksis.

Lenke til kommentar

For å se det fra en annen side, hva bryr det dere hvordan folk koder?

 

 

Bare lurer...

 

 

 

Du syns sikkert ikke det er en tilfredsstillende løsning, men på eksemplet ditt over hadde jeg bare slengt på en ToString(), og latt det skure :p

 

Mehn, en ting til. Hva gjør den f'en i Singlen? Ett tallsystem jeg ikke har hørt om (feksadesimalsk FTW :p), eller bare for provokasjon?

 

 

EDIT:

 

Men jeg må medgi at det virker rart å legge 2 tall etter hverandre inn i en string.

Endret av ze5400
Lenke til kommentar

Jeg skriver vanligvis C# hehe

 

1.0 = double

1.0f = float/single

 

edit:

Det er viktig å være presis med hva man mener, dessuten implicit casting mellom store til mindre datatyper er en feil i C#, derfor må man skrive 1.0f eller (float)1.0

 

Hadde det vært slik i VB.NET, så hadde vi kanskje ikke hatt like mange som skrev

 

Label1.Text = TextBox1.Text + 20

 

Som jeg egentlig anser som en feil, som VB burde slått hardt ned på.

Endret av GeirGrusom
Lenke til kommentar
Label1.Text = TextBox1.Text + 20

 

Det der ga ikke mening.

 

Jeg har aldri sett det der noen sinne ihvertfall. Har ikke lett, riktignok.

 

Mehn:

Label1.Text = TextBox1.Text & "20"

 

 

Gir straks mer mening, i min forskrudde verden.

 

Er det ikke slik de fleste gjør det, i VB.NET?

 

 

EDIT: Mulig du mente å addere, og i såfall gir det ikke fornuft i mils omkrets. Da bør man vel, om jeg ikke er helt feil, først validere om input er numeric, og deretter addere, før man tar det i en "ToString()", og legger det i Labelen.

 

 

 

(Eller er jeg helt på bærtur nå? Hvilket er meget mulig jeg er. Bare se signatur :p)

Endret av ze5400
Lenke til kommentar

Desverre så fungerer dette i VB.... svært beklagelig.

Dette har ført til at jeg har sett mye stygg VB kode, der folk gjør om tekst til tall ved å skrive

Dim s As String
Dim i As Integer
s = "120"
i = s + 0

 

Dette er som man kan se utrolig dårlig praksis, men det er desverre veldig utbredt, siden det fungerer.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...