Programuji již nějakou dobu a hledal jsem nějaké videa na základy v tomto programovacím jazyku a projel jsem jich mnoho, musím říct, ze bezkonkurenčně nejlépe stručné a polopaticky vysvětleno určitě návaznosti a funkcionality fungování tohoto vývojového prostředí. Děkuji a doufám, že budou i další videa, třeba i náročnější na pochopení.
Metodu int.Parse samozřejmě lze použít také, ideální je pak TryParse, která i ověří, jestli se překlad textu na číslo zdařil. Použitá metoda ToInt32 třídy Convert v podstatě také jen zavolá Imt32.Parse (viz zdrojový kód referencesource.microsoft.com/#mscorlib/system/convert.cs,1112 ), čili jde vlastně o totéž.
Díky. V úterý vyjde 7 (seznamy) a příští týden 8 (LINQ). Chybějící části 2 (posloupnosti) a 3 (matice) budou až skončí semestr (tj. začátkem května) a místo natáčení, a především stříhání nových částí pro karanténou zdistančněné studenty, budu mít chvíli na sestřih těchto dvou částí nahraných v přednáškovém sále (stejně jako 1 díl) ještě před vypuknutím tohoto neobvyklého stavu.
Pokud jde o absolutní základy algoritmického myšlení vůbec, pak lze začít i s jednoduchým pseudokódem třeba zde: bit.ly/ZakladyAlgoritmu Máte-li již toto zmáknuté, tak je C# určitě perfektní volba. Základní příkazy mají docela jednoduchou, elegantní i přehlednou syntaxi a dají se rychle dostat po kůži. Velkou výhodou C# ale je, že tím to nekončí a je neustále kam pokračovat (metody, třídy, OOP, rozšiřující metody, generika, LINQ, Entity framework...) a vytvářet v něm absolutně cokoli (aplikace konzolové, desktopové, mobilní, multiplatformní, webové, IoT, AI, hry...), což o většině ostatních jazyků říct nelze.
přesne takovyhle video potrebuji. jsem amater zacatecnik(35) co si stahl visualstudio protoze uz me hry nebavej .. a kdyz resim nejakej trapnej problem, a vim ze se to v nejakym videu resilo, je tezke pak dohledat od koho a v jakem videu a pak se na to cele koukat ...a tady je to proste serevirovane a bez omacky ... proste TOP ! pro me jako samozacatecnika.
Ahojte, prosim Vas. Jsme uplne zaciatocnik. Poradili by ste co je najlepsie skusat/ucit sa/ chcel by som nieco take ze ked nieco napisem tak aj vidim co sa vlastne deje a preco to vlastne je. Ja mozem videa sledovat atd ale to zabudnem neskor potrebujem sa aj nejak ucit na niecom co vidim co sa deje aka zmena atd. Dakujem za pomoc
Tak úplné základy programování si lze třeba osvojit s Algoritmy (programko.net/algoritmy), kde je jazyk zjednodušen na úplné minimum, zobrazují se hodnoty proměnných apod. Dobré je třeba i blokové programování (např. Scratch), kde kód není jen text, ale jako posunovatelné bloky, což někomu pro začátek může sednout lépe, než se do toho dostane. A pokud se lépe někomu pracuje s vizuálními prvky, než s konzolí, tak v C# lze začít i na okenních aplikacích (např. Windows Forms či WPF) a psát jen reakce na události, jako je třeba stisk tlačítka. A pokud někdo ovládá HTML, tak může zkusit třeba AspNet Core Razor Pages či rovnou Blazor, kde to HTML míchá se C# kódem.
zdravím Měl bych dotaz když chci vyzkoušet jestli to funguje hodí mi to chybu : Projekt neumí spustit profil (jméno projektu) a nic se nespustí nevím co s tím prosím o radu
A nejsou v názvu projektu nějaké nepovolené či nevhodné znaky? Používat by se měly pouze písmena bez diakritiky, podtržítko a čísla, přičemž číslo nesmí být na prvním místě. Taky by to mohlo být oprávněním, Visual Studio je nejlepší spouštět jak Správce. Když tak to můžeme probrat podrobněji přes Discord na programko.net/discord
Externí komponenty do Visual Studia samozřejmě existují, ale jejich potřeba vzniká až při tvorbě nějaký rozsáhlejších pokročilejších projektů. Pro naučení se i základní vývoj je plně dostačující to, co nabízí VS v základu. Stačí tedy stáhnout Visual Studio z visualstudio.com, a co se týče výběru modulů, které nabízí instalátor, tak vybrat dle toho, co chcete vytvářet. Pro videa z této série postačí modul "Vývoj desktopových aplikací .NET" (alespoň ve verzi VS 2022, ve VS 2019 je k němu třeba ještě přidat modul "Vývoj .NET napříč platformami").
Krásně vysvětlené. Hlavně zkratky a automatické doplňování. Ale jak třeba celý projekt přejmenovat a podobně? A jak nastavit Visuál Studio? Popisoval jste to v nějakém videu? Děkuji Honza
Díky. Nastavení Visual Studia používám veskrze výchozí, takže záleží jakou změnu nastavení máte na mysli. Pokud jde o instalaci, tak Visual Studio Community 2019 můžete stáhnout na visualstudio.com. Při instalaci je třeba zvolit alespoň následující moduly: - Desktopové a mobilní platformy - Vývoj desktopových aplikací pomocí .NET - Další sady nástrojů - Vývoj multiplatformních aplikací pomocí rozhraní .NET Core Co se týče přejmenovávání, tak na proměnné, třídy, vlastnosti, metody apod. existuje tzv. refactoring, který automaticky zajistí přejmenování na všech místech, kde je třeba. Po najetí na název proměnné se spustí buď F2 (ne vždy funguje) nebo "Ctrl + R, R" (to jde pokaždé). Přejmenovávání projektu je možné přes Solution Explorer, ovšem ne vždy to přejmenuje i soubory a složky. Ty je pak možné přejmenovat přes správce souborů, ovšem tím přestanou platit názvy (odkazy) v řešení (soubor s koncovkou .sln), popř. jiných projektech (.csproj), což se dá napravit ruční editací těchto souborů např. přes Visual Studio Code. Každopádně je vždy mnohem lepší si názvy alespoň u projektů promyslet předem a později je již nepřejmenovávat ;) Video na toto téma přímo nemám, byť jsem to tuším v některých starších alespoň z části použil. Ale nevylučuji, že na podobné téma někdy něco nenatočím.
@@PetrVobornik Moc děkuji za vyčerpávající odpověď. Myslel jsem jak zapnout to okno mezi programem a průzkumníkem řešení(zmenšený program). Ale na kartách je dost nastavení které nevím na co je tak se do něj nehrabu :-) Moduly mám nainstalovaný, škoda jen že nejde psát pro Arduino (dá, ale je to placené) Já většinou si jen zkouším tak to mám pojmenované jako Test. Jen když se mi něco povede tak to schovám. Ale když vidím jaký je to problém přejmenovat, tak bude lepší udělat nový projekt a kód tam překopírovat.
Nějak stále nechápu, co myslíte tím "oknem mezi programem a průzkumníkem" ;) Ano, Arduino s příslušným modulem v C# funguje (playground.arduino.cc/Interfacing/Csharp/), byť ten jeho základní jazyk na jednodušší programy také není špatný. Překopírovat kód do nově založeného projektu je celkem běžná praxe, nejen kvůli názvu, takže to jste zvolil dobrý postup.
@@PetrVobornik Už jsem na to přišel. Najet na svislý posuvník, pravé tlačítko, možnosti posuvníku, chování, zatrhnout - pro svislý posuvník použít režim mapování. Nemyslel jsem C# pro Arduino, ale ve Visual Studiu psát Wiring (což je odvozeno od C++) Výhody proti Arduinu IDE - napovídá syntaxi, podtrhává chyby, hned při psaní a ne až při kompilaci. Našel jsem - rozšíření, správa rozšíření, Visual Micro. Je to pěkné, ale je to jen zkušební verze (poté placená). (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-FUEDK87co4Y.html&ab_channel=VisualMicro) Zkoušel jsem i Visual Studio Code, ale ten mi podtrhává chybně i to co vím že je 100% dobře.
Vaše videa jsou skvělá a srozumitelná i pro naprostého začátečníka (prošla jsem algoritmy). Velké díky za ně. Ve videu C# 1 odkazuje na skripta. Prosím o informaci, kde se dají sehnat (v době distanční výuky) a jaký je jejich název. Děkuji.
Díky. Skripta jsou zatím oficiálně stále rozpracovaná a dostupná tak jen interně mým studentům. Nicméně aktuálně probíhá jejich finální recenze, po které je konečně budu moci zpřístupnit i širší veřejnosti.
@@viktorhnizdo Ano, skripta jsem již zveřejnil, ale jelikož je na nich stále co ladit, tak s dodatkem, že ještě mohou být a budou aktualizována, a zároveň s prosbou o nahlášení případných čtenáři nalezených "bugů". URL alias knihy, jehož funkčnost plánuji udržovat i po případném přesunu knihy jinam, je programko.net/zaklady-cs/kniha/
Mám dotaz: Začínám s programováním a je pro mě vhodný rozšíření do visual studia které se jmenuje Resharper? Slyšel jsem že pomůže opravit nějaké chyby aby šel program třeba v konzoly spustit.
Resharper jsem kdysi (před více než 10ti lety) také používal (což lze pozorovat v mých starších videích). Určitě je dobrý, přidával Visual Studiu pokročilejší funkce mnohem dříve, než se tam dostaly s novými verzemi VS. Trochu však tenkrát Visual Studio zpomaloval, což věřím, že už v nových verzích vychytali. Také tam přidával funkce, které pak mí studenti či diváci neměli, takže je to zbytečně mátlo. A hlavně je docela drahý a musela se neustále kupovat neustále nová verze (teď je to tuším za roční ne úplně zanedbatelný poplatek). Takže někde okolo VS 2010, které přineslo většinu hlavních funkcí, jež tam Reshaper přidával, jsem se ho vzdal (což není tak snadné, když si na jeho vychytávky zvyknete). Aktuální základní verze Visual Studia je mnohem dále, než byla dříve i s Resharperem, takže pro něj tak nějak úplně nevidím důvod, nicméně je mi jasné, že Resharper také určitě nezahálel a přidal další funkce, aby jeho používání smysl dávalo. Takže mrkněte na web, jaké funkce aktuálně přináší (zdá se mi ale, že spíše než pro začátečníky tam jsou pomůcky spíš pro profíky), zvažte cenu, zkuste trial a uvidíte. Já už jen z hlediska výukového zůstanu na VS bez něho.
To se stane, pokud kód upravujete, a přitom máte spuštěný (nebo jen pauznutý, nikoli však vypnutý) program tohoto kódu. Je to upozornění, že tyto dopsané novinky se v aktuálně spuštěné verzi programu neprojeví, dokud ji nerekompilujete (nevypnete a znovu nespustíte), v případě pauznutí pak nebude možné pokračovat v debugování, takže bude lepší to program vypnout rovnou.
Dobrý den. Jsem úplný začátečník. Zkouším si tohle dva dny. Můžete mi prosím poradit? Stáhla jsem si také Visual studio 2019. Kdyz napisu např. Hello world po spuštění se mi to zobrazí tak jak ma, ale když to odstraním a napisu neco jiného, po spuštění tam mam pořád helo world plus to nové. Stává se to skoro pokaždé když udělám nějakou změnu.
To zní jako že se mezi jednotlivými spuštěními nevyčistí obsah konzolového okna. Zkuste na začátek přidat příkaz Console.Clear(); který by to vyčištění měl vynutit.
Přijde na to, co už umíte. Pokud jakékoli programování vidíte prvně, nevíte co je podmínka nebo cyklus, jak se pracuje s poli či maticemi, pak bude lepší začít s Algoritmy (přeskočit to zle když tak kdykoli). Máte-li již o tomto povědomí, pak jsou na řadě Základy C#. Na ně volně navazuje OOP v C#, a pak Xamarin.Forms pro multiplatformní vývoj. A taky je tu pro inspiraci několik kratších starších minisérií s ukázkou vývoje konkrétního prográmku.
Stačí to označit a stisknout "Ctrl + K, C", tzn. zamáčknout Ctrl, stisknout (a zase pustit) K, totéž s C a až pak pustit Ctrl. Pro odkomentování se pak používá "Ctrl + K, U".
Delegátům jsem se nějak extra zvlášť nevěnoval, nicméně jsem je použil a zlehka i vysvětlil v šesté části této série (čas od 43:21): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-k6i8frp414g.html
Dobrý den¨, chtěl bych se zeptat PROGRAMUJI v C# ve .NEt 3 WinForms a dělám kalkulačku. Chci aby mezi tisíci byla mezera. Hledal jsem a bolhužel jsem našel pouze var nfi = new NumberFormatInfo(); nfi.NumberGroupSeparator = " "; // set the group separator to a space nfi.NumberDecimalSeparator = ","; // set decimal separator to comma což by nebyl problém kdybych to nepotřeboval udělat "Globálně" nevíte jak na to?
Ve Windows Forms předpokládám, že není DataBinding, ale klasické naplnění nějakého TextBoxu a sebrání jeho hodnoty při stisku tlačítka či při změně. Lepší než mezeru mezi tisíci je tam dávat číslu formát kultury, která je nastavená v OS, což by zde tedy měla být česká, tzn. mezery mezi tisíci a desetinný oddělovač je čárka. Pak stačí, když se číslo vkládá do toho TextBoxu, dát jen do parametru metody ToString hodnotu "N0" (tj. number s 0 desetinných míst, popř. třeba "N2", aby tam byly 2 desetiny atd.). Používám to např. zde ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-dSef7S-SZrQ.html v měnové kalkulačce. Je to sice WPF, ale krom definice GUI bude přístup ke komponentám bude podobný.
Ahoj, dobrý den, vytvořil jsem v c# kalkulačku a potřeboval bych jí vložit jako aplikaci na web ( wordpress) jak bych to mohl udělat. děkuji moc za radu nebo třeba odkaz kde bych to našel. Děkuji Jarda D.
C# je jazykem pro všechny platformy, takže záleží na tom, jestli kalkulačku máte vytvořenou jako aplikaci konzolovou, desktopovou, univerzální, mobilní, webovou atd. Každá má úplně jiné GUI i způsob ovládání, byť vnitřní logika může být absolutně stejná. Tu si jde dát např. do externí knihovny, ideálně typu .NET Standard, a pak ji lze používat ve všech těchto projektech. Vložit na web ji pak můžete jako soubor archivu (ZIP), a do ní tuto aplikaci zabalit, nebo jako odkaz do Store (v případě UWP či multiplatformní mobilní aplikace, Microsoft Store, Google Play, App Store). Pokud jde o knihovnu do projektů, pak lze publikovat jako NuGet balíček a ten zveřejnit pro zájemce na nuget.org, případně poskytnout i zdrojáky celého projektu na GitHub.com. Má-li ovšem ta kalkulačka být interaktivní součástí webové stránky, pak by muselo jít o aplikaci webovou, ideálně ASP.NET Core či ASP.NET 5, což by nutně nevyžadovalo Windows hosting, ale fungovalo i na Linuxu. Nicméně úplně klasické hostingy s touto variantou ne vždy počítají, takže to chce ověřit, jestli podporuje tento typ aplikace. Každopádně tím vznikne ucelená vlastní webová aplikace, která by nesouvisela s webem ve WordPeressu (ten je vytvořen v PHP a pro svůj chod potřebuje odlišné podmínky). Takže pro přidání takovéto moderní ASP.NET webové kalkulačky do stránek WordPressu by pak bylo nejjednodušší vložit ji do stránky přes iFrame či nějaký jiný typ kontejneru. Každopádně, zrovna kalkulačka, pokud tedy nepočítá nějaké extra složité funkce, je typ aplikace, který by ve webovém prostředí fungoval nejefektivněji, kdyby byl napsán v JavaScriptu. Pokud by skutečně pro některé výpočty potřeboval kontakt se serverem, pak to lze řešit přes API (volané přes Ajax), které by teoreticky mohlo běžet i na jiném serveru než WordPressový web.
Mám dotaz, proč když v consolx když potvrdím (zmáčknu enter) tak mě ta console zmizí (spadne). Nebo jde potvrzovat nějakou jinou klávesou?.. Děkuji za odpověď
Zmizí, protože program skončil (vykonal poslední příkaz a žádný další už tam nemá), což konzolové okno uzavře. Pokud chcete, aby okno počkalo ještě na jeden Enter i po svém konci, tak v nastavení, v sekci Debugging-General zrušte zaškrtnutí Automatically close the console when debugging stops. Když se pak aplikace spouští přes konzoli, tak ta se automaticky nezavírá, ale je-li program spuštěn jako okno, tak ano.
@@oveckatomik8072 Tak ještě to může skončit vyvoláním výjimky, ale to by zároveň v kódu vyznačilo místo, na kterém se to zaseklo. Není-li tomu tak, mělo by stačit na konec metody Main, jako poslední příkaz přidat "Console.ReadLine();", díky čemuž by to mělo před skončením ještě počkat na stisk klávesy Enter a až potom konzolové okno zmizet.
Máte na mysli kalkulačku v konzoli? Kdy se zadá jedno číslo (např. A), druhé (např. B) a pak znaménko operace (např. Z, jako +, -; * nebo /)? V tom případě spočítáte výsledek (např. C) třeba takto: int c; switch (z) { case '+': c = a + b; break; case '-': c = a - b; break; case '*': c = a * b; break; case '/': c = a / b; break; default: c = 0; break; } Console.WriteLine($"{a} {z} {b} = {c}");
Mohu se zeptat, jak mohu svúj projekt otevírat ve příkazovém řádku jako vy? Otevírá se mi to v DEBUG CONSOLE, ale tam nemohu psát ani nic. Nebo tam nějak mohu psát? Prosimmm pomoccc
Tak jako na videu to funguje bez dalšího nastavování hned po instalaci, takže buď je to jiná verze, chybí nějaký modul, nebo se něco zásadního změnilo v nastavení... a nebo ještě něco úplně jiného ;) Nebyl by nějaký screen?
Tak to byl můj první nápad, čím by to mohlo být, správný ;) Rozdíl mezi nimi je asi jako mezi Notepadem a Wordem, viz ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-a7pEHfAds8A.html
Visual Studio Code je vhodný pro HTML, CSS, JS, XML, json apod. Na veškeré programování je lepší klasické Visual Studio. Na hry taktéž. Leda že byste to chtěl vytvářet v Unity, pak to chce Unity... a k tomu Visual Studio ;)
cc, chtěl bych se zeptat já když něco dopíšu a dám tam nahoře tlačítko start tak my to napíše chybovou hlášku a nebyl nalezen soubor (název projektu).exe pls pomoz mi
Zkuste založit nový prázdný projekt (název by měl být bez diakritiky a mezer) a spustit jej dříve než tam cokoli napíšete. Konzole asi jen rychle problikne, ale EXE soubor by to mělo vytvořit a při každém spuštění přegenerovat na novou verzi. Také lze zkusit znovu sestavit řešení (menu Build - Rebuild solution). Pokud je v kódu chyba, tak se to samozřejmě nezdaří, ale mělo by ji to zvýraznit.
Tak to bych asi musel vidět. Ještě mě napadá, že je založen nesprávný typ projektu (např. knihovna), nebo tam chybí něco pro kompilaci (můžeš zkusit aktualizovat VS), oprávnění (spusť VS jako správce), popř. nějaký triviální "úklik", který mě takto po slepu nenapadá.
Dobrý den, už jsem se v programování o trochu zlepšil, a tak se snažím vytvořit svůj vlastní program. Chtěl jsem navázat na to, co jste dělal ve 34:00 (heslo jen se třemi pokusy). Napadlo mě, že bych udělal program, který by chtěl více hesel, než by pustil uživatele k „tajné informaci“. Myslím tím, že po zadání prvního hesla, by se nezobrazila „tajná informace“, ale chtělo by to po uživateli heslo druhé. Jenže když zkopíruju ten váš program a dám ho dvakrát pod sebe, tak se stane to, že když člověk dává špatné odpovědi, program člověka pustí až k tomu druhému „else“ (k druhé odpovědi na zadání hesla 3x špatně) i když už si vyplýtval počet pokusů. Šlo by nějak (jednoduše :D) udělat, aby člověku program zabránil ve psaní nebo se ukončil potom, co člověk zadá poprvé 3x špatnou odpověď?
Jednoduše lze dát tu druhou kopii do té správné větve ifu: if (heslo == "123") { // sem to nakopírovat celé ještě jednou } else Console.WriteLine("Počet pokusů byl překročen..."); A nebo toto celé dát do cyklu a pak lze požadovat třeba N hesel ;)
Na české (cs) klávesnici je to: [ = pravý Alt + F ] = pravý Alt + G { = pravý Alt + B } = pravý Alt + N Na anglické (en) pak klávesy závorek (vpravo od P), bez Shift to píše hranaté závorky, se Shift pak složené. Také lze použít ASCII kód, tzn. stisknout levý Alt a napsat na numerické klávesnici 91 pro [, 93 pro ], 123 nebo { nebo 125 pro }.
A není to spíš "Připojit k procesu"? Každopádně si to chce ohlídat nastavení spouštění, které by mělo odpovídat tomu ve videu: Konfigurace řešení = debug, Platformy řešení = Any CPU a zvolit správný spouštěný projekt. Také si zkontrolujte, že je založen stejný typ projektu (Konzolová aplikace, v popisku je uvedeno ".NET Core" a že to jde i pro "Windows").
Běží to na Windows 10 s posledními aktualizacemi? Je to Visual Studio 2019 Community? A jsou tam nainstalované alespoň moduly "Vývoj desktopových aplikací pomocí .NET" a "Vývoj multiplatformních aplikací rozhraní .NET Core"? A je založen správný typ aplikace (Konzolová, .NET Core)? Jiný typ aplikace (např. WPF .NET Framework) také založit a spustit nejde?
A v řešení je zvolen výchozí (start up) project? Pokud ne, tak se na projekt v průzkumníku řešení klikne pravým tlačítkem myši a zvolí jej jako výchozí (projekt je to na druhé úrovni stromu).
Jde o to, aby ten jeden jediný projekt byl označený jako výchozí. Někdy se stane, že byť je tam jen jeden projekt, tak tako označen není, a VS pak neví, co má spustit a proto nabízí alespoň to připojení k již běžícímu procesu.
Nic nemazat, jen ten jeden nastavit jako výchozí. Kliknout na něj v Průzkumníku řešení pravým tlačítkem a zvolit "Set as Startup Project". Jinak bych to asi musel vidět, třeba přes Discord?
@@PetrVobornik o Cpp by tam něco nebylo ? :-) dočetl jsem se o spoustě novinek v c++20 a propo VS 2022 má prý daleko větší výkon start daleko rychlejší a načítání projektů také . No chtěl jsem napsat jen že těch novinek je privela :-)
Základní rozdíly v novém C# 10 (.NET 6 a Visual Studiu 2022) u konzolovek jsem popsal třeba zde: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-VWLa7nRxPho.html Je to tedy neveřejný záznam streamu z přednášek (z www.twitch.tv/petrvobornik), na nějaký lepší sestřih či celé provedení to ještě čeká. Co se týče C++, tak ten sice trochu rychlejší je (i když s těmi heuristickými optimalizacemi v .NET 6 a plány do nových verzí, kdo ví jak moc to ještě platí), pokud se správně používá, ale u klasických aplikací je ten rozdíl nepozorovatelný (pokud se správně používá i C#), a pozná se třeba až u větších her, kde to pak naskakuje s FPS. Oproti tomu ten komfort a elegantnost C# za nějakou tu nanosekundu určitě stojí ;)
@@PetrVobornik to teda jo. v c++ novinka například zajímavý. a to je jen jedna z mála. u C# toho bude asi víc na ITNetwork jsem se díval a nic moc jsem nenašel no nicméně kouknu na odkazy v odpovědi. jinak o těch změnách by se daly napsat celé knihy :-)