Diskuze: WinForms kalkulačka
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 38 zpráv z 38.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
přečti si ten tutorial dále a postupně s novými zkušenostmi si dělej nové kalkulačky. Špatné to není, ale jde to značně vylepšit.
Veď viem, že tam mám veľa opakovaného kódu.
Trochu som to upravil a opakovaný kód tam asi už ani nie je.
http://skolka-jazyka-c.freespace.sk/…oad/file.php?…
Sorry, vyššie uvedený súbor bol zmenený, doplnil som komentáre.
http://skolka-jazyka-c.freespace.sk/…oad/file.php?…
Zkus používat mezery mezi komentáři a metodou. Ta redudantní metoda by
se dala zkrátit na 10%.(přičítání čísla do textboxu). Tak jako ty metody
se znaménky. Inicializovat tu třídu Vypocty pokaždé, když kliknu na
tlačítko je blbost.
EDIT: ty komentáře jsi trošku přehnal, to že máš psát komentáře
neznamená, že máš psát komentář ke každému řádku. Nemusíš psát
"inicializoval jsem lokální promměnnou typu string, která udává ... ".
Když jde z kodu jasně vidět, co kód dělá, nemusí být okomentovaný.
/// Prvá premenná typu double
/// Druhá premenná typu double
/// Premenná typu reťazec na zápis číslic do textboxu
/// Premenná typu char na vyjadrenie matematickej operácie
/// Zapísanie reťazca "1" do textboxu
To má být co? Než takové komentáře, tak raději žádné. Nikdy do komentáře nepiš to, co je zřejmé ze zápisu programu, protože při každé změně to pak budeš muset měnit na dvou místech. V programu i v komentáři.
Díky
Ďakujem. Zmenil som niečo.
Triedu som inicializoval len raz pri deklarácii premenných a v metódach so
znamienkami používam len inštanciu.
Ale tú redundantnú (piate kolo u vozu - wikipédia) metódu neviem ako
skrátiť na 10%.
Komentáre som prehnal, už nebudem až taký iniciatívny.
Každé tlačítko ti přidává k výslednému textu přece text, který je v tlačítku. To znamená, že ti stačí vytvořit 1 univerzální metodu, která si přetypuje sender na Button a z něj vytáhne vlastnost Text a tu pak přičte k číslu, ne?
Blbne mi net.
Blbne mi net.
Ďakujem, ale to je ešte nad moje znalosti.
(object sender, EventArgs e) ešte neviem používať.
object sender ti udává jaký objekt(v tomto případě komponenta - Button)
vyvolal tu událost. EventArgs jsou argumenty, resp. Data, které projdou
metodou. Argumenty v této podobě v sobě nic nedrží, jsou tam jen defaultní
metody děděné z třídy object. Jinak tam můžou držet data jako pozice
kurzoru(MouseEventArgs) atd.
EDIT:
Určitě jsi to už někde viděl
Button b = (Button)sender;
Button b = sender as Button;
Ďakujem za vysvetlenie. K tomuto sa ešte musím v tutoriáloch dostať. Zatiaľ som mimo.
Nájdeš si chvíľku času a napíšeš konkrétny príklad?
Jednoduše si vytvoř nějakou metodu třeba:
private void ClickOnButton (object o, EventArgs e)
{
TvojePromennaSCislem += ((Button)o).Text;
}
Tuto metodu přiřaď tlačítkům 0-9. Nevím jak už jsi to tam přesně měl. Tak snad to pochopíš.
Díky, pozriem sa na to keď prídem domov z práce.
Upravil som to podľa tvojej rady, ale nezdá sa mi to o 90% zmenšené, aj
keď to je asi objektovo správnejšie.
http://skolka-jazyka-c.freespace.sk/…oad/file.php?…
Ty komentáře jsou šílené. To ti prostředí generuje automaticky? Když je všechny zrušíš, program bude čitelnější.
Tie komentáre sú pre mňa. Keď to otvorím o rok a celý čas nebudem
programovať, nebudem bez nich vedieť, čo som myslel.
Komentáre si prosím nevšímaj. Zaujíma ma, či je ten kód dobrý alebo
stojí za prd.
Protože to ani zmenšené není. Dej mi chvíli a uploadnu ti to example project.
http://www.speedyshare.com/…ication2.zip
Kód není redudantní a zabírá 1/10 toho tvojeho.
Jak se to stahuje? A proč je to exe, když to má být zip? To vypadá spíš na nějaký malware.
Takové komentáře jsou defaultní ve VS, když napíšeš /// ty komentáře jsou dobré. Ovšem pro takové metody jsou spíše na obtíž. Každopádně ty komenty se ti potom přímo ukazuji přes nápovědu, snad jsi někdy ve VS dělal, tak víš co myslím.
Teď nato koukám, doporučíš mi nějaké free upload file hosting? Nechce se mi to držet na dropboxu a zároveň chci, aby to tu bylo pro ostatní i v budoucnu.
Ne, ve VS jsem nikdy nedělal, ale už jsem začal tušit, že to generuje nějaké IDE.
http://www.sendspace.com/file/cnp23e - tje ten example. Když to bude číst někdo z Adminů, tak smažte ten post výše, alespoň to URL. Je to zas fileupload co tam chce nějaké download tools ještě k tomu.
Mně se osvědčilo http://uloziste.com - dá se tam nacpat 300 MB přes HTTP nebo 1500 MB přes FTP. Vydrží to tam přes měsíc, pak to smažou. Dá se to průběžně updatovat podle potřeby. Obsah se skrývá za URL, které sem pošleš.
Jo díky. K těm komentům: http://2i.cz/5bb96b4192 takhle nějak ti to pak napovídá
Aha, takže jakási obdoba standardizovaných dokumentačních komentářů. Nic pro mne, ty standardizované se mi líbí víc.
Veľmi pekne ďakujem. Až teraz som to pochopil.
Hlavné je to, že pri použití metód s ((Button)sender).Text alebo (sender
as Button).Text je potrebné pridať do triedy Form.Designer.cs (do konkrétneho
Button) riadok s metódou napr.:
this.btn1.Click += new System.EventHandler(this.OnNumericButtonClick);
pričom btn1 je Button s textom "1" a OnNumericButtonClick je metóda v hlavnom programe.
Teraz to už mám dobre?
http://skolka-jazyka-c.freespace.sk/…oad/file.php?…
Do designéru nic nepises. Jen vytvoris metodu a pak ji priradis těm tlačítkům v properties - events.
Ak myslíš Form1.cs[Design], tak tam v properties events nevidím.
Poradíš ako na to?
Sorry, už som to našiel. :[
Takto je to oveľa jednoduchšie a všetko spraví visual.
Môj problém je asi ten, že som naučený z "C" všetko písať sám.
No do toho automaticky generovaného designer initialize kodu by jsi správně neměl zasahovat. A co, je to lepší napsat 1 metodu a udělat to takhle pro všechny tlačítka, než abys psal 10 redudantních metod ne?
To je samozrejmé a ďakujem ešte raz.
Zobrazeno 38 zpráv z 38.