NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
SczDavos
Neregistrovaný
Avatar
SczDavos:22.3.2010 15:27

ahoj, chci se zeptat c# si se učil na nějakém kurzu nebo samostudiem z knihy, internetu? já bych se chtěl tento jazyk také naučit jenže učebnic je hodně a nevím jakou použít pro začátečníka, mám zkušenosti jen s c++ ale jak veliký je to rozdíl netuším mohl bys mi nějakou knihu doporučit?

 
Odpovědět
22.3.2010 15:27
Avatar
sdraco
Vlastník
Avatar
Odpovídá na
sdraco:22.3.2010 16:20

Nedá se říci, že C# nějak moc umím, programuji naprosto intuitivně :D Stačí, když umíš jakýkoli jiný jazyk, je to všechno stejné (pořád cykly, podmínky...), vlastně těžím ze znalostí v Delphi, zbytek zjistíš pokusem a omylem nebo najdeš v Google.

Nahoru Odpovědět
22.3.2010 16:20
New kid back on the block with a R.I.P
Avatar
Drahos
Neregistrovaný
Avatar
Odpovídá na David Hartinger
Drahos:6.9.2010 21:01

Pokud máš zkušenosti s C++ (nejspíš asi s visual c++) tak pro tebe nebude težký začt. Určitě doporučuji knihu 1001 tipů a triků pro C# od autora Amadeo Mareš. Je to tam udělaný v podobě příkladů a jestli umíš C++, tak to je v pohodě ;)

 
Nahoru Odpovědět
6.9.2010 21:01
Avatar
r.unnamed
Člen
Avatar
r.unnamed:20.4.2011 13:46

Sdraco, nemáš tu knihu náhodou tak někde v .pdf ? :-)

 
Nahoru Odpovědět
20.4.2011 13:46
Avatar
sdraco
Vlastník
Avatar
Odpovídá na r.unnamed
sdraco:22.4.2011 17:42

Já jsem vůbec nepsal, že jí mám, to napiš Drahosovi :)

Nahoru Odpovědět
22.4.2011 17:42
New kid back on the block with a R.I.P
Avatar
r.unnamed
Člen
Avatar
r.unnamed:22.4.2011 19:38

Kdo je to Drahos ? :D

 
Nahoru Odpovědět
22.4.2011 19:38
Avatar
r.unnamed
Člen
Avatar
Odpovídá na r.unnamed
r.unnamed:22.4.2011 19:39

Odpusť, že jsem nenavázal na vlákno, utěkají mi myšlenky :`

 
Nahoru Odpovědět
22.4.2011 19:39
Avatar
Cressis
Neregistrovaný
Avatar
Cressis:22.2.2012 20:16

Ja mam dve knihy v pdf Microsoft Visual C# 2005 Krok za krokem a Microsoft Visual C# 2010 Krok za krokem. Ak by si mal zaujem tak napiste na mail.

 
Nahoru Odpovědět
22.2.2012 20:16
Avatar

Tvůrce
Avatar
:23.2.2012 8:22

Zkus tohle:
http://ulozto.cz/…atecniky-pdf

 
Nahoru Odpovědět
23.2.2012 8:22
Avatar
picopko
Neregistrovaný
Avatar
picopko:6.2.2013 13:40

caw mohol bz si mi poslat tu knihu Microsoft Visual C# 2010 Krok za krokem

 
Nahoru Odpovědět
6.2.2013 13:40
Avatar
Empty
Člen
Avatar
Odpovídá na David Hartinger
Empty:3.3.2013 15:14

Tak to je super :D Já píšu co mě napadne, píšu bez chyb a stejně to nefunguje tak jak má.... :D :D (pokus omyl)

 
Nahoru Odpovědět
3.3.2013 15:14
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Empty
David Hartinger:3.3.2013 15:30

Psal jsem to před třemi lety, teď C# učím a napsal jsem o něm učebnici :D

Nahoru Odpovědět
3.3.2013 15:30
New kid back on the block with a R.I.P
Avatar
Lubos
Člen
Avatar
Lubos:3.3.2013 16:20

ja zase ani neviem co pisem a funguje :D

 
Nahoru Odpovědět
3.3.2013 16:20
Avatar
Martin Horáček:26.3.2013 18:03

Prosím o tip na nějakou dobrou učebnici programování v C#. Nejlépe na úrovni začátečníka. Díky za odpovědi.

 
Nahoru Odpovědět
26.3.2013 18:03
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Martin Horáček
Petr Nymsa:26.3.2013 18:10

Ahoj zkus Visual C# Krok za krokem http://knihy.cpress.cz/…-c-2010.html anebo zdejší tutoriály o C#, které jsou velmi rozsáhlé, od začátku až po pokročilé techniky a velmi kvalitní. Navíc téměř hned a s ochotou ti zde někdo pomůže či proadí :)

Nahoru Odpovědět
26.3.2013 18:10
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David
Tvůrce
Avatar
David:26.3.2013 18:21

Knížku pro začátečníky doporučuji moderní programování

Nahoru Odpovědět
26.3.2013 18:21
Nic néni nemožné!
Avatar
roman
Neregistrovaný
Avatar
Odpovídá na
roman:27.8.2013 23:58

Ahoj, mel bych zajem o pdf verze knih. diky predem. :-) mail je romansimku@gmail.com

 
Nahoru Odpovědět
27.8.2013 23:58
Avatar
Michal Z.
Člen
Avatar
Michal Z.:28.8.2013 1:14

Jestli stačí .pdf knihy v Angličtině, tak tady jsou 3 http://uloz.to/…XPD/c-en-zip

 
Nahoru Odpovědět
28.8.2013 1:14
Avatar
vitamin
Člen
Avatar
Odpovídá na
vitamin:28.8.2013 8:45

Kedze uz ovladas c++ tak je zbytocne zacinat s knihami pre aciatocnikov, mozes skusit toto: http://www.amazon.com/…p/1430242337 (da sa stiahnut aj pdf verzia).

 
Nahoru Odpovědět
28.8.2013 8:45
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 9:05

Když už ovládá C++, stačí se k tomu naučit ještě OOP.

Nahoru Odpovědět
28.8.2013 9:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 9:22

Čo tým myslíš? Pokial viem tak oop v c++ je veľmi podobné tomu v c#.

 
Nahoru Odpovědět
28.8.2013 9:22
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 9:27

Pokud vím, tak OOP je v C++ téměř nepoužitelné. Ano, dají se tam udělat třídy, jejich instance, dají se zavolat metody, i dědičnost tam je, ale to je asi tak všechno.

Nahoru Odpovědět
28.8.2013 9:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 9:32

V čom je nepoužiteľné?

 
Nahoru Odpovědět
28.8.2013 9:32
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 9:43

Například tam chybí garbage collector. Jak zlikviduješ objekt, který returnem předáš volající metodě a ta ten objekt předá jako parametr další metodě? Kdo bude odpovědný za jeho likvidaci?

Nahoru Odpovědět
28.8.2013 9:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:28.8.2013 9:47

Jsou tu techniky jako třeba smart pointers.

A memory management se přeci nijak netýká OOP, to jsou dvě úplně odlišné věci.

Nahoru Odpovědět
28.8.2013 9:47
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Běhounek Satik:28.8.2013 10:05

Btw v C++ se také dá používat GC a můžeš si vybrat, jestli ho používat chceš nebo ne.

Nahoru Odpovědět
28.8.2013 10:05
https://www.facebook.com/peasantsandcastles/
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 10:07

Takže OOP v c++ je nepoužiteľné preto lebo nemá GC? Proti tomu sa veľmi ťažko argumentuje :D.
Dám ti sem jeden pekný citát:

Bjarne Stroustrup: C++ is my favorite garbage collected language because it generates so little garbage

 
Nahoru Odpovědět
28.8.2013 10:07
Avatar
Odpovídá na Kit
Michael Olšavský:28.8.2013 10:27

OOP v C++ je velmi jednoduše použitelné, avšak jelikož to byl jeden z prvních návrhu, jsou tam rozdíly. Ty ale neubírají na funkčnosti. Jen dovolují začátečníkům tvořit prasacky kod. Tobě asi vadí, že to neobsahuje všechny ty metody na které jsi zvyklíz oostatních jazyků (ikdyž ty knihovny existují, jen nejsou součástí) a musíš si je psát sám pokud to neskombinujes s nějakým frameworkem(.NET­...) C++ má GB, ale jen velmi slabou. Proto si většina C++ programátorů píše svoji vlastní.

 
Nahoru Odpovědět
28.8.2013 10:27
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 10:54

Jedná se o to, že v C# se OOP dělá jinak, než v C++ a proto je nutné se to OOP pro C# naučit znovu, aby si do něj programátor netahal nevhodné návyky z C++.

Nahoru Odpovědět
28.8.2013 10:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 11:01

Aké sú tie nevhodné návyky?

 
Nahoru Odpovědět
28.8.2013 11:01
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 11:10

Například vytváření dočasných proměnných a objektů, pokud potřebuji výstup z jedné metody předat jako parametr jiné metodě. Používání ref/out parametrů, manipulace s atributy jednoho objektu z jiného objektu, ...

Nahoru Odpovědět
28.8.2013 11:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:28.8.2013 12:39

"Používání ref/out parametrů"

  • proč je to nevhodný návyk? Pořád od tebe slyším, že použití je špatné, ale ještě jsem neviděl žádné podložení toho tvrzení.

Třeba když máš funkci, která má barvu uloženou v int rozložit na RGB složky, tak neznám lepší způsob, než to udělat přes out.

void RozlozNaRGB(int barva, out byte r, out byte g, out byte b)
{
...
}

"manipulace s atributy jednoho objektu z jiného objektu"

  • to se nijak netýká přechodu z C++ na C#, tohle můžeš dělat snad v každém OO jazyce, ne?
Editováno 28.8.2013 12:39
Nahoru Odpovědět
28.8.2013 12:39
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:28.8.2013 12:47

Tohle se tu už řešilo milionkrát, v objektové aplikaci máš na barvu přece strukturu a tu vrátíš. Vracet 3 hodnoty je blbost a chyba v návrhu.

Nahoru Odpovědět
28.8.2013 12:47
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:28.8.2013 12:50

Pořád píšeš samé low-level příklady, abych to měl co nejtěžší :)

Proč bych používal takovou metodu, když v C# mohu použít barva.Red, barva.Green a barva.Blue?

Manipulace s atributy cizích objektů nejde dělat, pokud jsou privátní.

Nahoru Odpovědět
28.8.2013 12:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.8.2013 12:54

V objektové aplikaci by byla ta jeho metoda konstruktorem.

Nahoru Odpovědět
28.8.2013 12:54
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.8.2013 13:02

Programátoři v C++ berou barvu jako int místo struktury. Pak se nemůžeme divit, že jim z toho vznikají takové divné metody.

Nahoru Odpovědět
28.8.2013 13:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:28.8.2013 13:06

Chyba v návrhu. To od tebe a Kita slyším pořád, ale ukažte mi, kde je psaný, že vracet hodnoty přes out a ref je špatně, zatím jsem to jen slyšel od vás :)

Strukturu (místo třídy) použít můžu, ale kvůli rychlosti nepoužívám, přeci jen oproti jednomu obyčejnému intu má nějakou režii.
U operací, kde se dělá s pixely intenzivně, to je znát hodně a je to rozdíl ve výkonu je třeba dvojnásobný.

Nahoru Odpovědět
28.8.2013 13:06
https://www.facebook.com/peasantsandcastles/
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 13:11

To nemá nič spoločne z jazykom. enum môžeš vytvoriť aj v c++.

 
Nahoru Odpovědět
28.8.2013 13:11
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:28.8.2013 13:12

Pokud budeš používat int místo struktury barva, tak netvrď, že programuješ objektově. Tato část programu prostě není v OOP, takže s tím nemůžeš argumentovat. Je napsána procedurálně, jen ji možná někde výš jako komponentu používáš objektově.

Nahoru Odpovědět
28.8.2013 13:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 13:12

Jaký enum?

Nahoru Odpovědět
28.8.2013 13:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:28.8.2013 13:13

Se podívej do .NETu, kromě TryParse to žádná metoda nedělá a místo toho je milion tříd na všechno možné, proč asi? Když píšeš aplikaci v objektovém jazyce, tak ji píšeš objektově. Až teprve když máš někde výkonnostní problémy (většinou když děláš něco nestandardního, na co ten jazyk není navržený), tak se uchyluje k zápisům, které jsou nepřehledné. Neznám tvůj usecase, jako vždy jsi napsal pouze část vytrženou z kontextu. Kompromisem by mohlo být aby metoda vracela pole.

Editováno 28.8.2013 13:13
Nahoru Odpovědět
28.8.2013 13:13
New kid back on the block with a R.I.P
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:28.8.2013 13:13

Protože takovéhle low-level věci často používám - bitmapa jako pole čísel, vlastní komprese, pathfinding apod. :)

"Manipulace s atributy cizích objektů nejde dělat, pokud jsou privátní."
Proti tomu přece nic nenamítám, v C++ se také rozlišuje viditelnost členů, ale nijak se to netýká přechodu C++ k C# :)

Nahoru Odpovědět
28.8.2013 13:13
https://www.facebook.com/peasantsandcastles/
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 13:15

Nemusis požiť int na uchovávanie farby. Možeš použiť enum:
enum class Color{Red, Green, Blue,};
Do int-u sa ale lepšie ukladajú rôzne otiene.

 
Nahoru Odpovědět
28.8.2013 13:15
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:28.8.2013 13:18

Pořád jste mi nikdo neodpověděl, proč nebo jak out/ref odporuje OOP.

Nahoru Odpovědět
28.8.2013 13:18
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:28.8.2013 13:21

OOP nepoužívám jen u částí, kde to OOP příliš brzdí - obvykle u takovýchto low-level algoritmů, zbytek aplikace samozřejmě kvůli přehlednosti je plně OOP.

Nahoru Odpovědět
28.8.2013 13:21
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:28.8.2013 13:22

Jsem ti to psal několikrát, odporuje tím, že místo abys pracoval s objekty tak pracuješ s holými proměnnými, které ačkoli mají mezi sebou nějaký vztah, tak nejsou součástí objektu.

Nahoru Odpovědět
28.8.2013 13:22
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:28.8.2013 13:24

Takže low-level píšeš procedurálně a high-level (snad) objektově.

Psal jsem, že public atributy bývají nevhodné návyky, které si programátoři přetahují z C++ do C#. Nemohu za to, že se v C++ nenaučili používat privátní atributy, asi ten jazyk nějakým způsobem svádí k public. Proto v C# zavedli vlastnosti, aby jim to usnadnili.

Nahoru Odpovědět
28.8.2013 13:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na vitamin
Kit:28.8.2013 13:30

Ale já počítám s odstíny. Kde vidíš nějakou zmínku o enum?

Možná jsem měl raději napsat barva.R, barva.G a barva.B

Editováno 28.8.2013 13:33
Nahoru Odpovědět
28.8.2013 13:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:28.8.2013 13:34

Napr tu:
"Proč bych používal takovou metodu, když v C# mohu použít barva.Red, barva.Green a barva.Blue? "

Predpokladal som že to ej enum...

Čo sa týka atribútov, tak tie sú v c# hlavne kvôli tomu že nie je možne vrátiť referenciu.

 
Nahoru Odpovědět
28.8.2013 13:34
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na vitamin
David Hartinger:28.8.2013 13:39

Enum je s velkým písmenem ;-)

Nahoru Odpovědět
28.8.2013 13:39
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 55.