Hi. Říkal jsem si, že bych zkusil nějaký hodně jednoduchý textový editor. A chci se zeptat, jestli by šel udělat bez použití dědičnosti? Proč se ptám...jsem celkem začátečník, nicméně metody, vlastnosti, konstruktory, třídy ap. a jak to mezi sebou komunikuje umím, ale dědičnost jsem si ještě na 100% neosvojil a protože jsem člověk netrpělivý, tak chci textový editor hned a ne až si dědičnost osvojím. Nicméně pokud to jinak nejde, či by to bylo jinak o hodně delší, tak hold budu muset překonat svojí netrpělivost a nejdřív úplně pochopit dědění.
Díky za odpověď.
Fórum › .NET
Primitivní textový editor
![](img/forum_vlakno_help_vyreseno.png)
To paul27 : zvlastni otazka :)
na jednoduchou okynkovou verzi nepotrebujes nic jinyho nez jak nacist a ulozit soubor. Formular s textboxem a dvema buttonama(menu) naklikas a doplnis jen obsluhu tech buttonu.. mozna by se hodil i fileopendialog a filesavedialog ci jak se jmenuji..
Standa napsal:
Ano. Jde to udělat. Alespoň ve VB.NET ano.
Nj zapoměl jsem uvést, že to chci udělat v C#.
na jednoduchou okynkovou verzi nepotrebujes nic jinyho nez jak nacist a ulozit soubor. Formular s textboxem a dvema buttonama(menu) naklikas a doplnis jen obsluhu tech buttonu.. mozna by se hodil i fileopendialog a filesavedialog ci jak se jmenuji..
fileopendialog a filesafedialog by se teda zatraceně hodily:)
Jinak já to naklikání nemám moc rád a (někomu přijde možná divné) i méně chápu když si formulář atd naklikám než když napíšu rovnou celej zdrojovej kód, takže bych to asi nenaklikával...ale to je teď jedno - takže jde to bez dědění?
To paul27 : V zásadě nevidím důvod, proč se dědění bránit. IMHO se na tom není moc co učit.
Samozřejmě, že jde... vezmeš textbox,fileopen a filesave dialogy a máš jednoduchý editor:)
To paul27 : Naklikat nenaklikat je na tobe. Kazdopadne porad nerozumim tve otazce. Dedicnost tak jako tak pouzijes at uz ji rozumis nebo ne. Napriklad uz jen to okno zjevne podedis z Windows.Forms nebo jine podobne knihovny. Navic prakticky vse, i jednoduche datove typy, je od neceho odvozene(minimalne od Object). Kazdopadne jednoduchy textovy editor neni aplikace ktera by vyzadovala buhvi jake vyuziti principu dedicnosti takze bych se toho na tvem miste nebal.
To paul27 : Nikoliv, to ty jsi špatně pochopil mě. Dědění tam stejně použíješ, i když nepřímo.
imho najlepšie sa pochopi dedičnosť v praxi. To že ferrari je vlastne auto a to je vec je nepoužiteľné. Ale vytvoriť pole vecí a každé nech sa vykreslí... to už je vec :)
Když už mluvím o té dědičnosti, tak se zeptám.
1.- Když dědím, tak všechny metody atd., ale ne ty soukromé, že ano?
2.- Základní (base class) třída je vlastně taková obecnější ne?
3.- Jestli jsem to bobře pochopil, tak dědičnost se používá ke zkrácení kódu? Ještě k něčemu asi co? Protože když třeba budu mít třídu, kde mám metodu, která přistupuje k datovým složkám...třeba pro zadání jména....pak mám další třídu, kam bych chtěl v podstatě to stejné jen něco málo navíc, tak abych to nemusel psát znova (jako tu metodu a datovou složku pro jméno), tak si to zdědím od hlavní třídy. Chápu to dobře?
Díky.
To paul27 :
Zkus si precist http://cs.wikipedia.org/wiki/Objektov%C4%9B_orientovan%C3%A9_programov%C3%A1n%C3%AD
btw kdosi na interval.cz pise nasledujici a nelze s tim jinak nez souhlasit:
1. Dedicnost jako takovou pouziji tehdy, pokud nemam jine efektivnejsi moznosti.
2. Dedicnost mohu pouzit pouze v pripade, kdy jsem schopen potomka pretypovat zpet na rodice a dal ho pouzit (tzn., ze potomek je jen rozsirujici ci specialni objekt rodice).
3. Potomek nijak neznehodnocuje rodice.
4. Potomek je schopen vyuzit vsech vlastnosti rodice. (Pokud tomu tak neni, je chyba v navrhu a je treba vratit se o krok zpet)
V jakemkoli jinem pripade pouzijte skladani :) Skladani je to, ze trida obsahuje atribut, ktery je objektem dane tridy, kterou potrebuji.
1) Jop, soukromé (s kl. slovem private) členy jsou dostupné jen na úrovni té svojí třídy (nebo struktury, ...)
2) Zpravidla jo, ale klidně si do té odvozené můžeš přidat tolik hovadin, že bude obecnější než bázová :smile5:
3) Něco na tom bude, přidej si k tomu možnost překrytí těch metod (hledej klíčová slova virtual, override a new) a spousty dalších věcí... dědičnost je docela hezky popsaná ve 4. díle seriálu na Živě.cz o C#
To paul27,Chrasty: ja som uz dobre 3-4 roky programoval vo VB6 :D (co veelmi lutujem, lebo ma to dost poznacilo) a teraz uplne nepriamo ignorujem OOP, tj vyuzivam iba uplne zaklady ako new MojaTrieda(), overloadovanie metod/konstruktorov + event handlery, mozno delegaty. Inac o nejakych virtualnych metodach alebo o dedicnosti si mozem nechat snivat :D (nikdy som to totiz uplne nepochopil)
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Tkinter - Textový editor — založil Poky
C# GTK Textovy editor — založil Miro1701
Textovy editor pod windows — založil Jakub
Script pro textový editor — založil tečka
Python Tkinter - textovy editor — založil martin klvaňa
Moderátoři diskuze