Kan man installera VB.NET på samma dator som man har VB6.0 Om du kommer från VB världen och skall gå över till .NET. Det är absolut inga problem att gå från VB till VB.NET. Se bara till att INTE använda dig av namespacet Microsoft.VisualBasic, utan att använda VB.NETs motsvarigheter. Microsoft.VisualBasic är en av sakerna som gör att jag tycker att man bör välja C# om man kommer från VB världen jag tror att det är för frestande att inte ta bort den referensen. Sedan tror jag att många inte tänker på det heller. <b>om man kommer från VB världen jag tror att det är för frestande att inte ta bort den referensen.</b> Kodar man VB.NET så anser jag att man ska hålla sig till .NET-sättet att göra saker. InStr ligger väl under Microsoft.VisualBasic och hör alltså till VB-sättet. >>Förklara gärna varför IndexOf skulle vara bättre än Instr Om jag då vill vara objektorienterad hur konverterar jag en sträng till heltal (Integer)? >'med en textbox för numeriska värden där det ej går att mata in text. <b>antal = txtAntal.Text.ToInteger 'hade jag önskat fanns med </b> Niclas TextBox.Text är en string, på string finns ingen metod för att konvertera till en integer. <b>>Niclas Ber om ursäkt för felstavningen Niklas.VB6.0 & VB.NET
utan att man får problem med endera ?Sv: VB6.0 & VB.NET
Välj C# istället.Sv:VB6.0 & VB.NET
Sen finns det andra fördelar med att använda C#, men jag tycker att det är lite av en myt att det skulle vara svårt att gå från VB till VB.NET.
/ThomasSv: VB6.0 & VB.NET
Orsaken till varför jag tycker att man skall ta C# istället för VB.NET är att man skall känna att man kommer in i en helt ny utvecklingsmiljö, vilket man kanske inte riktigt gör om man kommer från VB och går mot VB.NET.
Men tja det är bara vad jag tycker. Jag har tyvärr sett att detta har hänt på det företaget jag arbetar på.
Men det finns väl undantag antar jag, frågan är om mitt företag är undantaget eller tvärtom.Sv:VB6.0 & VB.NET
Lite vagt argument att man ska välja C# för att inte frestas använda Microsoft.VisualBasic. Har man inte disciplin att välja bort Microsoft.VisualBasic så lär man inte ha disciplin att välja C# från början heller.
<b>Orsaken till varför jag tycker att man skall ta C# istället för VB.NET är att man skall känna att man kommer in i en helt ny utvecklingsmiljö, vilket man kanske inte riktigt gör om man kommer från VB och går mot VB.NET.</b>
Lite av poängen är väl att man ska känna igen sig, även om det inte är helt lika.
Mitt råd är att välja VB.NET, ta bort referensen för Microsoft.VisualBasic (och inte använda den "manuellt" heller, givetvis) och sen koda som vanligt. När man stöter på något som inte fungerar som det brukar, tex att InStr() inte fungerar, så letar man reda på Google hur man "ska" göra i VB.NET och hittar ganska snabbt att det är IndexOf() som gäller. Då kommer man förhoppningsvis att koda på rätt sätt utan att inlärningskurvan blir speciellt hög.
/ThomasSv:VB6.0 & VB.NET
Det är väl just den här blandningen av olika programmeringssätt som gör att myter om att man ska gå från VB till C# uppstår.
Nån annan kan säkert svara på varför det rent tekniskt är vettigare med InStr istället för IndexOf. Niclas kanske? :-)
/ThomasSv:VB6.0 & VB.NET
Det är en principiell skillnad. Antingen är du funktionsorienterad och låter språket göra jobbet med Instr (Mid, Left osv) eller så är du objektorienterad och låter ramverket vara det som har funktionaliteten medans språket bara står för syntax.
Rent tekniskt använder sig dessutom de inbyggda nyckelorden (och även standard strängjämförelsen '=' ) av Microsoft.VisualBasic klassbiblioteket vilket strävar efter att ha så hög bakåtkompatibilitet med VB6 som möjligt. Alltså inte nödvändigtvis det som är bäst för .NETs motor CLR och objekt orienterad programmering.
Ang VB vs C# så är min uppfattning att VB har kvar rötterna i sin "funktionsorientering" och de features som MS stoppar in i språket är mer eller mindre nybörjarfunktioner, medan C# traditionellt sett fått lite tyngre OO funktioner och bättre stöd för mer avancerade mönster. Sv: VB6.0 & VB.NET
Alltså
Dim antal As Integer
antal = Cint(txtAntal.Text) 'Funktionsorienterad, ej bra
antal = txtAntal.Text.ToInteger 'hade jag önskat fanns med
Alltså motsvarande som jag gör om jag konverterar mitt värde då jag ska lägga ut informationen till en textbox.
txtAntal.Text = antal.ToString
Eller ännu hellre borde det funnits färdiga objekt som klarat numeriska värden direkt och returnerat det som numeriskt värde snarare än text.
Alltså
antal = txtAntal.Value 'med en textbox för numeriska värden där det ej går att mata in text.
Tar gärna emot tipps om hur jag fixar (bygger själv) eller hittar sådana textboxar för numeriska värden.
mvh RolandSv:VB6.0 & VB.NET
Antingen kan du lösa det med kod och en vanlig textbox eller så kan du använda MaskedTextBox.Sv:VB6.0 & VB.NET
antal = int.Parse(txtAntal.Text)
eller
antal = Convert.ToInt32(txtAntal.Text)
T.ex.
/JohanSv:VB6.0 & VB.NET
">antal = txtAntal.Text.ToInteger
Ruby."
Går inte på min dator, VS 2008 Pro, vad saknar jag för inställning eller classbibliotek?
Convert.ToInt32 är väll funktionsorienterad programering och det skulle vi väll låta bli?
MaskedTextBox var hittar jag den?
Ödmjuk och läser och lär.
mvh RolandSv: VB6.0 & VB.NET
Det du får göra är att hämta ut strängen och parsa den med antingen
int number = Convert.ToInt32(myTextBox.Text);
eller för att vara på den säkra sidan om det är en användare som kan skriva in vad som helst,
int number;
if(int.TryParse(myTextBox.Text, out number)
{
// Parsningen lyckades och numret finns nu i number.
}
else
{
// parsningen misslyckades. Notifiera användaren?
}
Sedan så finns det TextBoxar som har denna funktionalitet inbyggd, alternativt att man använder sig av Validator's som man bör använda.Sv: VB6.0 & VB.NET
>">antal = txtAntal.Text.ToInteger
>Ruby."
>
>Går inte på min dator, VS 2008 Pro, vad saknar jag för inställning eller classbibliotek?</b>
1. Ni<b>k</b>las. :-)
2. Ruby är ett annat programmeringsspråk, ett betydligt mer "rent" objektorienterat än säg C# eller Java. Där kan man göra i stort sett allt man kan förvänta sig.Sv:VB6.0 & VB.NET
Triva bra med VS men försöker hela tiden utveckla mina kunskaper i vad denna utvecklingsmiljö har för möjligheter,
mvh Roland