Hej! > Om jag använder VS 2008 så verkar det språket helt annorlunda, antar att det är på grund av att man använder ett ramverk eller? Jo, jag gissar mest runt här faktiskt då jag inte vet, jag antog att VS 2008 var ett ramverk det är ett NET språk och man behöver net framework. .NET Runtime är den runtime som behövs för att köra ett .NET-program. I nuläget finns det väl 3 versioner av runtime: 1.0, 1.1 samt 2.0. Jämför med Java-motorn i Java. Den största grejen C# har mot C++ är reflection. Dock.. Generics har faktiskt fördelar emot Templates: Generics kan man instantiera utan att ha källkoden till densamma. Det kan du inte med C++. Nja. Ja, alltså, i verkligheten är det så. Men i språkspecifikationen är det inte så, och det är alltså en ren kompilatorfråga. Jag fattade inte ens hälften av det här... :P Vad menar du med "kraftfullt"? Nej, men det jag egentligen vill veta är om det är något bra att börja med (C#) No offence, men jag är rädd att du får vänta lite med att göra spel tills du kan göra den bedömningen själv. Jo, jag vet, jag har inte tänkt att jag ska kunna göra ett spel om ett år eller så precis... Eftersom C#/Net är mycket enklare att använda än C++ och du inte har programmerat spel förut, så är det en god idé att du börjar med enkla C#-program och spel först innan du försöker dig på C++. Tack, det är det jag har varit lite "orolig" för annars vore det onödigt att gå a-b-c kursen :) Nja, språket är det lilla problemet i sammanhanget. Att kunna programmera är det stora problemet. Nej men, det är bra att veta om man kan göra det man vill i språket innan man börjar med det. Nja, alltså, det spelar ingen roll om du ska programmera counter strike eller inte, när du börjar komma upp i den nivån så kan du satsa på ett programmeringsspråk lämpligt för just sådana sysslor. Ett kunna programmera är en sak, att kunna ett visst programmeringsspråk är en helt annan (och enklare) sakC sharp
Jag ska börja med c(#) Sharp.
Om jag använder VS 2008 så verkar det språket helt annorlunda, antar att det är på grund av att man använder ett ramverk eller?
Sen kan man koda vanligt utan ramverk, då ser koden helt annorlunda, det är väl på grund av ramverket.
Vad kan man egnetligen göra i C Sharp, det känns klenare än C++ t.ex., vad kan jag inte göra i C# som jag kan i C++ t.ex.
Tacksam för svar :)Sv: C sharp
>
> Sen kan man koda vanligt utan ramverk, då ser koden helt annorlunda, det är väl på grund av ramverket.
Det där få du utveckla lite, jag händer inte alls med på vad du menar
> Vad kan man egnetligen göra i C Sharp, det känns klenare än C++ t.ex., vad kan jag inte göra i C# som jag kan i C++ t.ex.
C++ är kraftfullare än C#, men.. Med makt kommer ansvar, bland annat för minnet.. Kort sagt så är väl .NET bättre än C++ när det gäller minneshanteringen, samt enkelheten. .NET överlag är väl lite mer "business" än traditionell C++.Sv:C sharp
Jag förstår inte för c sharp i VS 2008 är ju nästan identiskt med VB.NET
men sen kan man även koda C# krångligt, genom att koda den konsitga koden hehe :P
Så vad är det egentligen för nåt?Sv: C sharp
.NET Framework är de klassbibliotek som ett .NET-program har beroenden av. I nuläget finns det väl 5 versioner av frameworket: 1.0, 1.1, 2.0, 3.0 samt 3.5. Version 2.0 till 3.5 körs på runtime 2.0. Jämför med klassbiblioteket i Java.
C#, VB.NET, C++ CLI (eller vad det nu heter i .NET-version) och en del till är språk som kan kompileras till .NET-program. Programmen har sedan beroenden mot runtime och framework.
VS.NET är bara en utvecklingsmiljö som låter dig skriva i något .NET-språk och kompilera med någon kompilator, varken mer eller mindre. (Visst, sedan tillkommer en massa roliga saker, typ en bra debugger, bra editor osv. Här kan C++ slänga sig i väggen..) Men ändå, VS.NET har absolut ingenting att göra med det färdiga programmet.Sv: C sharp
Många av de övriga grejerna som C# "har" men inte C++, är snarare samma konstruktioner, fast specialiserade och därmed begränsade, alternativt något modifierade (dock i huvudsak samma grejer som i Java). Interface i C# är protokollklasser i C++, arv i C# är nästan allt som ingår i arv i C++, med "äkta" multipelt arv som en stor avsaknad.
Generics i C# är som Templates i C++, förutom att de är extremt begränsade - kommer dock förbättras i kommande versioner.Sv:C sharp
Sv: C sharp
Det hänger i sin tur ihop med att .NET är en VM, och C++ är hårt kompilerat. Det är i teorin fullt möjligt att skapa en ny typ av objektsfiler som håller templates "öppna" och som sen kompilerar in koden i efterhand, det är bara det att ingen gör det.
Och vidare är det fullt möjligt att - i vissa specialfall (åtminstone alla sätt man kan använda generics på som jag kan komma på) - arbeta med void* internt, kompilera den koden, och sen wrappa den i templates. Utåt sett är det alltså templates, i tunna .h-filer, som "internt" är kompilerade och man inte har källkod till.Sv:C sharp
Hur kraftfultt är C# jämfört med C++
Skulle jag kunna skapa låt oss säga ett spel: battlefield, Counter strike. eller något annat större spel
Är det så pass kraftfullt?Sv: C sharp
För mig är "kraftfullt" en kombination av:
Möjlighet att reducera stora mängder kod till väldigt lite kod.
Möjlighet att arbeta på väldigt låg nivå
Möjlighet att slippa arbeta på låg nivå, att själv välja nivå (och då normalt sätt arbeta på hög nivå).
När du pratar om att göra spel så är det helt andra saker som avgör, framförallt prestanda.
Om du tar ett spel så är det i allmänhet skrivet på ett hyggligt oo-orienterat vis. Du har alltså klasser som innehåller objekt och ärver andra klasser. Det är ganska "högnivå." Du pratar inte om pixlar, tets eller så, utan om "spelare", "monster", osv.
Detta är nästan alla mainstreamspråk lämpliga för idag (och för all del, många lite mer akademiska eller obskyra). Däremot kan man få problem med prestandan i C#. När det kommer till tyngre spel så är det framförallt kommunikation ganska nära till grafikkort som krävs, och det leder i sin tur till att man behöver komma till lågnivå, alltså krävs ofta C, C++ eller liknande (framför allt ingen vm).
Fast att säga att C++ "är mer kraftfullt" pga detta är ju galet. Sen skulle jag nog säga att C++ är mer kraftfullt ändå, men inte på grund av att man göra spel i det.Sv:C sharp
Jag vill ju kunna göra avancerade program och liknande gärna spel efter ett tag.
Och som sagt så är det enklare än C++ som gör att man gillar det mer.Sv: C sharp
Eller uttryckt på ett annat sätt: Börja med vad du vill - du kommer inte göra Counter-Strike i C#, men du kommer inte göra Counter-Strike på ett tag ändå. Spel är bra mycket svårare än man kan tro.Sv:C sharp
Men jag är mest nyfiken om möjligheten är stor och finns där.. :)Sv: C sharp
Ett förslag är att du börjar med typ Pong och Pac-Man innan du försöker göra 3D (vilket går bra att göra i C# med genom att använda Managed DirectX).
Det görs spel till Xbox 360 i Dotnet/XNA, så Du behöver nog inte oroa dig över att ramverket inte duger :)Sv:C sharp
Sv: C sharp
Man lär sig programmera bra i något språk, ett nytt programmeringsspråk kan man sedan alltid lära sig när man behöver det.
Det finns en rad olika sätt att programmera på, t.ex. OOP eller funktionellt. Det är sättet att programmera på som är det svåra, inte exakt vilket språk man skriver i sedan.Sv:C sharp
Har faktiskt rätt så bra kunskaper i andra språk så det borde inte bli så svårt :PSv: C sharp