Alexen Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Hei! Debattene har i lang tid rast om hvilket av disse to språkene som er "best". Siden jeg hadde brukt vb6 ble det naturlig for meg å gå videre til vb.net. Jeg har registrert at flere her inne foretrekker c# og at Manfred har et noe anstrengt forhold til vb I Gamle dager kan jeg skjønne at folk foretrakk c/c++ foran classic vb men skal ikke disse to nye språkene produsere ganske lik kode? Er det ennå slik at man lærer endel uvaner ved å bruke vb? Den eneste grunnen til at jeg kan tenke meg å lære c# er at det er språket som helst brukes i xna. Har ikke lyst til at dette skal bli en fanboi-flamewar men skulle gjerne hørt noen saklige argumenter på hvorfor det ene er bedre enn det andre. (litt trøtt her på mårran så litt rotete innlegg) Lenke til kommentar
Spartakus Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Du kan jo ta en titt her: http://www.harding.edu/fmccown/vbnet_csharp_comparison.html Et lite utrag: VB.NET Private _size As Integer Public Property Size() As Integer Get Return _size End Get Set (ByVal Value As Integer) If Value < 0 Then _size = 0 Else _size = Value End If End Set End Property foo.Size += 1 C# private int _size; public int Size { get { return _size; } set { if (value < 0) _size = 0; else _size = value; } } foo.Size++; 'nuff said Lenke til kommentar
Wubbable Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Som du ser, så er VB mye mer oversiktelig Lenke til kommentar
j000rn Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Har ikke lyst til at dette skal bli en fanboi-flamewar men skulle gjerne hørt noen saklige argumenter på hvorfor det ene er bedre enn det andre. Optimist! :!: Som du ser, så er VB mye mer oversiktelig Smak og behag. Jeg syntes C# er myyye mer oversiktlig, og jeg har hatt store prosjekter i begge språkene. Den kompilerte koden blir så og si lik. * C# er "strengere" enn VB.Net. VB.Net kan derfor være enklere for nybegynnere, men "latskapen" gjør at man kan få runtime feil/bugs. Noe av dette kan man unngå ved å forandre instillingene på prosjektet, men hvor mange gjør det? * C# har flere avanserte muligheter enn VB.Net. Ex. unsafe kode. * Visual Studio oppfører seg litt anderledes for språkene. VB.Net har litt mer funksjonalitet som gjør visse oppgaver litt enklere. * I jobbsammenheng er C# å foretrekke fordi det blir sett på som mer profesjonelt. Det er mye flere ledige jobber innen C# enn VB.Net. * Microsoft satser mer på C# virker det som. Lettere å finne god dokumentasjon, eksempler og tutorials. * Av en eller annen rar(?) grunn klarer alle som bruker C# å lese VB.Net kode helt fint (selv om de klager å syter på at det er rotete), men VB.Net utviklerene blir hysteriske (fordi de ikke forstår noenting) om de må lese en liten snutt C# kode... * C# ligner mer på Java, JavaScript, C/C++, etc. Slik at man får et bedre utgangspunkt til å jobbe med andre språk. * VB er IKKE det samme som VB.Net. Gamle VB programmere tar ofte med seg de dårlige uvanene de har brukt i VB (fordi VB er dårlig) over i VB.Net. Lenke til kommentar
Degeim Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 (endret) Jeg har ganske nylig gått over fra VB.net til C#, og har ikke tenkt meg tilbake. Jeg har ikke noe imot VB.net, men som Jørn sier er egentlig C# myyyye mer oversiktlig. Jeg mener også at man kan skrive et program raskere i C# enn i VB.net, fordi du slipper å styre med lange nøkkelord som "then", "end sub", "end select", "end X", osv., men heller har de pene {}. Og så har du fine snarveier, som feks å skrive "prop" eller "for" og trykke tab to ganger, og så får du ferdig kode for henholdsvis en egenskap (Property) (som du ser i eksempelet til Spartakus) eller en for-løkke ferdig skrevet, og det gjenstår bare å endre nøkkeldelene så det passer til ditt behov (det er mulig dette finnes i VB også, men det tror jeg ikke). C#-IDEet er også såvidt jeg vet raskere enn VB.net-IDEet, siden sistnevnte driver med forskjellige ting mens du jobber, i stedet for når du kompilerer (som C# gjør). Og så er jeg veldig enig i alt Jørn sier i posten over. (Og hvis noen er interesserte i å oversette de gamle VB.net-prosjektene mine til C# (for et pent klapp på skulderen) er det bare å si fra!) Endret 1. desember 2007 av Degeim Lenke til kommentar
Alexen Skrevet 1. desember 2007 Forfatter Del Skrevet 1. desember 2007 Tusen takk for gode svar Det med at det finnes flere eksempler til c# har jeg flere ganger oppdaget. Er ikke bestandig helt lett å få konvertert de over vb. Lurer på en ting. I gamle dager når man trengte å gi vb6 litt ekstra hjelp så skrev man en liten rutine i c/asm og kalte den fra vb. Dette er vel fremdeles mulig med .net? akkurat det her med api i vb.net synes jeg er blitt en ekkel sak. Lenke til kommentar
j000rn Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Tusen takk for gode svar Det med at det finnes flere eksempler til c# har jeg flere ganger oppdaget. Er ikke bestandig helt lett å få konvertert de over vb. Lurer på en ting. I gamle dager når man trengte å gi vb6 litt ekstra hjelp så skrev man en liten rutine i c/asm og kalte den fra vb. Dette er vel fremdeles mulig med .net? akkurat det her med api i vb.net synes jeg er blitt en ekkel sak. Man har muligheter for å kjøre interop på kode som ligger i "gammeldagse" DLL filer og win32 api ja. Lenke til kommentar
Wubbable Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 * Av en eller annen rar(?) grunn klarer alle som bruker C# å lese VB.Net kode helt fint (selv om de klager å syter på at det er rotete), men VB.Net utviklerene blir hysteriske (fordi de ikke forstår noenting) om de må lese en liten snutt C# kode... Jeg klarer da å lese C# helt perfekt Enig i at det er mer tutorials i C#, men det tar jo ikke evigheter å konvertere det til VB.NET, så sant det lar seg gjøre da... Eneste jeg har vært borti som ikke lar seg convertere er noe Unchecked integer eller noe... Lenke til kommentar
GeirGrusom Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 En av grunnene til at jeg sluttet med Visual Basic.net var det at store prosjekter blir fort uoversiktelig. Men synes jeg dette er fordi Visual basic kode inneholder så mye uviktig informasjon som End Sub, End Interface etc. der alle disse kunne vært byttet ut med bare End som det er i Pascal. Også type konvertering synes jeg er enklere (og bedre) i C#, i tillegg har man flere muligheter i C# Har også inntrykket av at de fleste som begynner med VB.NET går forholdsvis raskt over til C#. Det som ikke lar seg konvertere til VB.NET: public unsafe void ProcessBitmap32(Bitmap src) { System.Drawing.Imaging.BitmapData data = src.LockBits(new Rectangle(0, 0, src.Size.Width, src.Size.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, src.PixelFormat); unchecked { uint* ptr = (uint*)data.Scan0.ToPointer(); int pixels = src.Size.Width * src.Size.Height; for (int x = 0; x < pixels; x++) { // Get red/green/blue values uint red = (*ptr & 0x00ff0000) >> 16; uint green = (*ptr & 0x0000ff00) >> 8; uint blue = (*ptr & 0x000000ff); // Store alpha, so we don't lose it uint alpha = (*ptr & 0xff000000); // Calculate max value uint mx = max(red, green, blue); uint mn = min(red, green, blue); // Calculate uint delta = mx - mn; // Divide by 2 uint delta_2 = (delta / 2) + mn; *ptr++ = alpha | (delta_2 << 16) | (delta_2 << 8) | (delta_2); } } src.UnlockBits(data); } Det denne koden gjør, er å konvertere et fargebilde til et sort/hvitt bilde. Lenke til kommentar
j000rn Skrevet 1. desember 2007 Del Skrevet 1. desember 2007 Eneste jeg har vært borti som ikke lar seg convertere er noe Unchecked integer eller noe... Putt det inn i en long isteden, og AND 0FFFFFFFFh og putt den inn i en integer igjen... Lenke til kommentar
alftore Skrevet 3. desember 2007 Del Skrevet 3. desember 2007 Mitt første prosjekt var i VB.NET for en bedrift. VB funket helt greit, men jeg trives absolutt bedre med C#. Lenke til kommentar
bjovas Skrevet 18. januar 2008 Del Skrevet 18. januar 2008 Det som er er at det stort sett er smak og behag som avgjør om en bruker VB.Net eller C#, man kan lage pretty much akkurat de samme applikasjonene med de to språkene. Man kan ikke akkurat si det samme om VB6 og C++, f.eks. Selv jobber jeg med C#, og må si jeg synes VB.net virker som om det har mye mer tungvint syntaks. Lenke til kommentar
GeirGrusom Skrevet 19. januar 2008 Del Skrevet 19. januar 2008 VB.NET har en mye tyngre syntaks, dette mye på grunn av alle nøkkelorda som språket bruker som C# ikke har (sub, function end, property. Jeg mener at dette er ikke snakk om smak og behag, jeg er temmelig sikker på at de som mener dette er smak og behag, ikke har laaang erfaring i begge to. C# > VB.NET Jeg har laaaaaaang erfaring med VB fra VB3.0 og oppover, også VB.NET brukte jeg i et par år, men nå bruker jeg kun C# fordi: - enklere syntaks (færre nøkkelord, pluss endel logiske vendinger som ikke er i VB.NET) - mye mer oversiktelig kode - flere muligheter (pekere blant annet) Blant annet liker jeg at C# gjør forskjell på: - sammenligning og verdisetting (== mot =) - binære og logiske operasjoner (&& mot &) ting som er i C# men ikke i VB.NET Increment/decrement: int i = 0; i++ Operator as foreach(object o in collection) { IDisposable disp = o as IDisposable; if(disp != null) disp.Dispose(); } Assignment og sammenligning i samme setning: string s = null; while((s = reader.ReadLine()) != null) DoSomething(s); Kommentarer over flere linjer /* Hei på Du */ Pekere: public unsafe void PointerSample() { int *ptr; // Lag en peker int i = 0; // Definer en verdi ptr = &i; // La pekeren peke til i *ptr = 200; // Lagre 200 til der ptr peker til (i) // Nytt eksempel int[] arr = new int[255]; fixed(int *arr_ptr = (int*)arr) { for(i = 0; i < arr.Length; i++, arr_ptr++) *arr_ptr = 200; } } For de som enda ikke har turt å røre C#: prøv! C# er bedre på alle måter, og dette kommer fra en som begynte å lære seg programmering i VB3 og QuickBasic. Lenke til kommentar
bjovas Skrevet 29. januar 2008 Del Skrevet 29. januar 2008 Når det gjelder tung syntax, så er det et veldig lite relevant argument for å bytte over til c# hvis en først er vant med vb. Tror ikke det er så veldig mange programmere som sitter og skriver kode med touch hele dagen og som blir holdt tilbake av at de må skrive så mange linjer, hadde det vært det store problemet hadde vi byttet til Ruby hele gjengen Lenke til kommentar
GeirGrusom Skrevet 29. januar 2008 Del Skrevet 29. januar 2008 VB.NET kode er også veldig uoversiktelig, og blir fort en jungel av nøkkelord, som jeg tror jeg har påpekt ved flere anledninger. VB.NET har ingen fordeler fremfor C#, ikke på noen områder. Lenke til kommentar
bjovas Skrevet 29. januar 2008 Del Skrevet 29. januar 2008 Men det er heller ikke sånn at man ikke kan lage pretty much det samme i vb.net som i c#, på pretty much samme tiden. DotNetNuke er f.eks skrevet i vb.net. (Nå bruker jeg som sagt c# selv.) Lenke til kommentar
GeirGrusom Skrevet 29. januar 2008 Del Skrevet 29. januar 2008 "Pretty much" Unsafe kode kan åpne noen dører for enkelte tunge operasjoner, som f.eks. bildemanipulering, eller kommunikasjon med C biblioteker. Lenke til kommentar
CronoMan Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 uint delta_2 = (delta / 2) + mn; uint delta_2 = delta >> 1 + mn Lenke til kommentar
j000rn Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 uint delta_2 = (delta / 2) + mn; uint delta_2 = delta >> 1 + mn Du har nok en kompilator fra 70-tallet hvis den ikke automatisk klarer å gjøre dette selv.... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå