Diskuze: Materiály pro učení C#

C# .NET .NET (C# a Visual Basic) Materiály pro učení C# American English version English version

Avatar
SczDavos
Neregistrovaný
Avatar
SczDavos:

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
Tým ITnetwork
Avatar
Odpovídá na SczDavos
sdraco:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Drahos
Neregistrovaný
Avatar
Odpovídá na David Čápka
Drahos:

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:

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

 
Nahoru Odpovědět 20.4.2011 13:46
Avatar
sdraco
Tým ITnetwork
Avatar
Odpovídá na r.unnamed
sdraco:

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

Nahoru Odpovědět 22.4.2011 17:42
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
r.unnamed
Člen
Avatar
r.unnamed:

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:

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:

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
Darkmagic
Redaktor
Avatar
Nahoru Odpovědět 23.2.2012 8:22
Nejhorší je, když myslíš, že víš
Avatar
picopko
Neregistrovaný
Avatar
picopko:

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 Čápka
Empty:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Empty
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lubos
Člen
Avatar
Lubos:

ja zase ani neviem co pisem a funguje :D

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

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
Redaktor
Avatar
Odpovídá na Martin Horáček
Petr Nymsa:

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
Redaktor
Avatar
David:

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 Cressis
roman:

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.:

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 SczDavos
vitamin:

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
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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:

Č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
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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  -1 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:

V čom je nepoužiteľné?

 
Nahoru Odpovědět 28.8.2013 9:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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):

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
:)
Avatar
Luboš Běhounek (Satik):

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
:)
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:

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  +1 28.8.2013 10:07
Avatar
Odpovídá na Kit
Michael Olšavský:

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  +1 28.8.2013 10:27
Avatar
Kit
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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  +1 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:

Aké sú tie nevhodné návyky?

 
Nahoru Odpovědět 28.8.2013 11:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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):

"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  +1 28.8.2013 12:39
:)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
David Čápka:

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  ±0 28.8.2013 12:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

V objektové aplikaci by byla ta jeho metoda konstruktorem.

Nahoru Odpovědět  +1 28.8.2013 12:54
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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 Čápka
Luboš Běhounek (Satik):

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  +3 28.8.2013 13:06
:)
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:

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
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

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
Redaktor
Avatar
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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

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
:)
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:

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 Čápka
Luboš Běhounek (Satik):

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

Nahoru Odpovědět 28.8.2013 13:18
:)
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

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
:)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
David Čápka:

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  +1 28.8.2013 13:22
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

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
Redaktor
Avatar
Odpovídá na vitamin
Kit:

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:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na vitamin
David Čápka:

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

Nahoru Odpovědět 28.8.2013 13:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na vitamin
Kit:

barva.Red je konstanta #FF0000, podobně jako třeba barva.Chocolate #D2691E, ale barva.R je červená složka barvy, barva.G je zelená složka barvy,...

Nahoru Odpovědět 28.8.2013 13:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na Cressis
Jan Demel:

Ahoj. Měl by jsem zájem o ty učebnice :) Email - jandemel98@gmail.com

Nahoru Odpovědět 5.1.2014 12:17
To co se zdá být nemožné, je vždy možné.
Avatar
kashpi
Redaktor
Avatar
kashpi:

Našel sem web, kde pokud se spokojíte s anglickýma knihama, tak najdete snad všechno
http://www.it-ebooks.info/

 
Nahoru Odpovědět 7.2.2014 10:00
Avatar
petrph
Člen
Avatar
petrph:

Taky si uvědomit, že i ve tvorbě programů se práce rozděluje mezi řadu odborníků. Čili-analytik udělá objektovou analýzu a návrh-ten předá programátorovi, čili ten už nemusí přemýšlet o tom jak co "udělat objektově", ten jen přepíše do kódu to co dostal předepsáno od analytika. Profesní designér navrhne uživatelský rozhraní (u webu určitě), čili programátor tam zase jen předepsaným způsobem pošle data...Atd..
Samozřejmě, pokud si děláš celý program "sám", a třeba rovnou všechno "mastíš do kódu", tak ti to pak připadá strašně náročný a pořád se ptáš jak udělat tohle, jak tohle..Ale i to se naučíš časem a zkušeností..

 
Nahoru Odpovědět 7.2.2014 10:28
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 54 zpráv z 54.