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


Översättning av kodsnutt C# -> VB

Postades av 2009-10-03 18:49:41 - Ann Kapborg, i forum c# (c-sharp), Tråden har 8 Kommentarer och lästs av 1028 personer


Är detta korrekt?

int E = ( 11 * G + 20 + Y - X ) % 30;
if (E == 24) {E++;}
if ((E == 25) && (G > 11)) {E++;}

översätts till:

Dim intE As Integer = (11 * intG + 20 + intY - intX) Mod 30
If intE = 24 Then intE += 1
If intE = 25 And intG > 11 Then intE += 1

Tack på förhand,

///Ann


Svara

Sv: Översättning av kodsnutt C# -> VB

Postades av 2009-10-03 19:37:12 - Niklas Jansson

Nej, sista ska vara:
If intE = 25 AndAlso intG > 11 Then intE += 1

för att de ska bli ekvivalenta (påverkar om G i själva verket är ett anrop, och det i sin tur har sidoeffekter).

Sen förstår jag inte varför du har lagt till int framför varje variabel?
<b>Lägga på</b> ungersk notation?!


Svara

Sv:Översättning av kodsnutt C# -> VB

Postades av 2009-10-03 21:07:54 - Ann Kapborg

Tack,

Vad är det för skillnad på and och andalso? (Edit, googlar och där ser man vad man missat)
Så här resonerade jag förut :)
And är ju båda villkoren uppfyllda, vilket torde ge samma resultat som du menar?
Dvs på svenska om intE är av värdet 25 samt att intG är större än 11.
Or är bara ett av villkoren uppfyllda.

Det jag aldrig stött på förut var E++
Tänkte ta reda på mer vad det betyder och ger för effekter och då måste jag veta att jag har rätt i koden.

Eftersom jag är självlärd försöker jag hålla reda på datatyperna genom att skriva med ungersk notation (terminologi är inte min starka sida).

Många kodexempel i vb är skrivna så, en del av dem vars kod jag arbetat med har gjort så.

Vad är nackdelen?

Edit: Läser på här http://visualbasic.about.com/od/quicktips/qt/vbnetlogop.htm skummade och läste "and then the program works". Precis sådan information vill man ju ha :).

Edit II: datatyp int i C# motsvaras av long i vb så inte konstigt att jag fått avrundningsfel.
dvs. värden mellan -2,147,483,648 to 2,147,483,647. Sedär det blev en givande kväll där jag lärde mig en hel del nytt :).


Svara

Sv: Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 01:14:24 - Niklas Jansson

<b>>And är ju båda villkoren uppfyllda, vilket torde ge samma resultat som du menar?</b>
And är inte short-cicuiting, AndAlso är det (och det är också &&).

Vad det betyder är att kompilatorn skippar resten av if-satsen så fort den är säker på resultatet.

alltså, låt säga att a = true, b=false, c = true. Vi kollar då på:

a and b and c

När VB-kompilatorn upptäcker detta kollar den först a, sen b, sen c - utan att bry sig om delresultat. Alltså:
a => true
a and b => false
false and c => false

När språk från C-stammen, däribland C# använder && fungerar det på ett annat sätt (och AndAlso är motsvarigheten till detta). Tidigare fråga kommer då hanteras:
a => true (fortsätt)
a andalso b => false (hoppa ur)

och sen tar det slut. Detta är dels för en liten prestandavinst, men också för att man ska kunna skriva kod som:
if x isnot nothing andalso x.isSomething()
det andra anropet skulle alltså krascha om x var nothing, och koden skulle inte fungera med and. Där hade man behövt göra något i stil med:
if x isnot nothing then
if x.isSomething() then

för att anropet inte skulle ske.
ok?

i++ betyder "öka i med 1". i c och c++ betyder det också "returnera värdet på i efter ökningen", har inte koll på om det är så i c# också.

<b>ungersk notation [...] Vad är nackdelen?</b>
Nackdelen: vad händer om du byter datatyp? du har tre extra tecken per variabel.
Vad är fördelen? IDE:t ger ändå tips om det, och det är ju oftast bara att kolla några rader upp för att se deklarationen ändå.

<b>>datatyp int i C# motsvaras av long i vb</b>
Nu kan jag ha snurrat ihop det på kvällskvisten, men det är väl:
datatyp int i C# motsvaras av long i vb6
datatyp int i C# motsvaras av int i vb.net
?


Svara

Sv:Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 01:38:26 - André Claesson

Mm, lite trött är du nog Niklas. Det finns ju ingen datatyp i VB.NET som heter int ;-)

Däremot ger både

//C#
MessageBox.Show(int.MaxValue.ToString());

&

'VB.NET
MessageBox.Show(Integer.MaxValue)

resultatet

2147483647


Svara

Sv: Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 01:41:29 - André Claesson

Och som tips till Ann.
Denna verkar översätta koden rätt:
http://www.developerfusion.com/tools/convert/csharp-to-vb/


Svara

Sv:Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 12:23:45 - Ann Kapborg

Tack André för länken.

Datatyper är alltid intressant och här hittar jag hur det ser ut i VB.NET.

http://ondotnet.com/pub/a/dotnet/2001/07/30/vb7.html Så Int finns i viss mån. Int32 etc.

Tydligen är C# int = VB.NET Integer.

Niklas: om jag avser att byta datatyp ska jag väl använda variant? Eller om du menar att jag byter datatyp all togheter, då använder jag search and replace. Kanske mest en smaksak? Varför finns det så många som rekommenderar att man använder notation samt även använder det tro?

Tack för svaren, jag tragglar vidare och lär mig under tiden.


Svara

Sv: Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 12:52:07 - Niklas Jansson

<b>>Niklas: om jag avser att byta datatyp ska jag väl använda variant? Eller om du menar att jag byter datatyp all togheter, då använder jag search and replace.</b>
Ja, det är klart att du kan - men om du glömmer det, så stämmer inte namnet och typen överrens.

<b>>Kanske mest en smaksak? Varför finns det så många som rekommenderar att man använder notation samt även använder det tro?</b>
Många rekommender<b>ade</b> ungersk notation, till och med MS hade det som officiell rekommendation. (Sen var det så att ungersk notation från början var något annat än system-ungersk som finns idag. I början var det tänkt att visa betydelsen av variabler - inte datatypen. Detta förvanskades dock snabbt...)

Hur som helst - det är få som rekommenderar det idag, av flera skäl:
1. Du får redundant information, om man byter på ena stället måste man byta på andra.
2. Du får längre variabelnamn, vilket ger mindre utrymme att beskriva vad variabeln faktiskt innehåller. Alternativt kan du korta ner koden och på så sätt ha bättre överblick över koden.
3. Du måste hitta på nya förkortningar för alla klasser, alla typer, alla kontroller. Och sen förmedla dessa till alla som ska titta på koden. Och du kan inte enforce:a att det följs på något sätt.
4. Det finns olika standarder. Vanligt är att folk skriver iNumber istället för intNumber. En annan vanlig är textbox som förkortas txb eller txt. Ytterligare en variant är buttons som antingen är cmd eller btn.
Hjälper föga med en standard när den är olika överallt.

Och fördelarna är ytterst få. Vad ska jag ha variabelns typ till? Dels kan jag hoppa till deklarationen med en knapptryckning, dels framgår det av namnet i övrigt, dels visar mitt IDE vad det är under tiden jag skriver den.

Notera också att MS nu har en tydlig linje MOT ungersk notation.


Svara

Sv:Översättning av kodsnutt C# -> VB

Postades av 2009-10-04 16:32:13 - Ann Kapborg

Där ser man, tack för att du tog dig tid att övertyga mig.

Kompletterar med en länk.

http://www.irritatedvowel.com/Programming/Standards.aspx

Exempel camel och pascal längst ned:

http://www.knowdotnet.com/articles/namingguidelines.html


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 634
27 958
271 741
464
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