Quote (xGurke @ 21 Jan 2014 11:17)
mindenre
miben más mint a c++ (eddig azt tanultam, ami c-s)
miért jó a vs, etc
ja meg kinectről ha tud valaki valamit, akkor az is jöhet, mert azt is fogunk használni majd
wat
hát mindenben más
c# .net managed nyelv, intermediate language-be fordít, ami nagyjából úgy néz ki mint az assembly
ezt egyszer írtam kézzel, csak nézelődtem:
Code
.assembly extern mscorlib {}
.assembly FunctionCall {}
.namespace FunctionCall
{
.method public static void main() cil managed
{
.entrypoint
ldstr "Enter a number: "
call void [mscorlib]System.Console::Write(string)
call string [mscorlib]System.Console::ReadLine()
call int32 [mscorlib]System.Int32::Parse(string)
call int32 Add(int32)
call void [mscorlib]System.Console::Write(int32)
ret
}
.method public static int32 Add(int32) cil managed
{
ldarg.0
ldc.i4 1
add
ret
}
}
ilyen kimenetet produkál az ha c#-ban leírod hogy "írjon be egy számot: " és bekéred
az a jó ebben, hogy mind a 200+ .net nyelv ebbe fordít, és itt még elvégezhet egy tucat optimalizációt* (a java is hasonlót csinál, csak az nem ennyire nyílt hogy írhassál hozzá akármilyen '.net nyelveket')
volt hogy néztem egyik programom IL kódját, és nem értettem hogy miért nem optimalizál le 2-3 atomi műveletet
és kiderült hogy azért mert amikor JIT lefordítja akkor történik ez meg
ha c#-ban írsz valamit és lefordítod .exe-be, akkor ezzel a progival ki tudod szedni az IL kódját az .exe-ből minden egyes osztálynak:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\ildasm.exe"
ami nagyjából úgy fog kinézni amit code tag-be tettem
java-val össze tudnám neked hasonlítani, most kb 20 dolog ugrott be amiben más, de c++-al nonsense imo, két külön világ