Názory ke článku Konstruktory v C# – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Konstruktory v C# – Programujte.comNázory ke článku Konstruktory v C# – Programujte.com

 

Názory ke článku Konstruktory v C#

djanosik   NOVÝ
8. 4. 2008

Je to IMHO dobrej článek pro začátečníky, ale mám pocit, že už to tady bylo. Cennější by bylo probírat další problematiku. K obsahu bych vytknul chybné odsazení zdrojáků.

BTW: Statické konstruktory jsou, pokud vím, vždy volány před vytvořením první instance nebo před prvním přístupem ke statickým členům.

Olin   NOVÝ
8. 4. 2008

Reagoval na komentář od uživatele Dušan Janošík :

A jeste bych dodal ze staticky konstruktor a staticka trida ma pouze jednu instanci v celem programu. Takze se pak trida chova jako funkce papriklad v c++

Podhy   NOVÝ
8. 4. 2008

Reagoval na komentář od uživatele Olin :
sorry ale statická třída a mít instanci?

měl si snad namysli třídu která implmentuje návrhový vzor Singleton ne?

SneakerXZ   NOVÝ
12. 4. 2008

Mohl bys taky napsat o Destruktorech (Dispose a Finalize), kdy by se měli používat, jak se používají apod.?

jakubk, autor článku   NOVÝ
12. 4. 2008

Reagoval na komentář od uživatele SneakerXZ : Určitě napíšu, momentálně mám rozdělého něco o MS Expression Blend, pak bych něco o destruktorech udělat mohl...:)

Erwoll   NOVÝ
15. 4. 2008

Docela bych nesouhlasil s odvážným tvrzením, že základní poznávací prvek konstruktoru je shodný název s třídou. Klidně si vytvořím 20 přetížených metod, které budou mít stejný název jako třída, které přísluší.
Poznávacím prvkem by spíš mělo být, že nemá návratový typ a až druhotně ona poznámka se stejným názvem.

Jinak dobrý článek.

Rene Stein   NOVÝ
11. 5. 2008

Zdravim,

tvrzení v článku (viz citace níže) není pravdivé. U bázové třídy je vygenerován veřejný konstruktor a pokud v odvozené třídě nespecifikuji, na jaký konstruktor v bázové třídě se odkazuji, je hledán a spuštěn konstruktor bázové třídy bez argumentů.

Taková situace vyvolá při kompilaci chybu, tentokrát nepomůže ani výše zmiňovaná funkce kompilátoru. Jednoduše musíte mít vždy definovaný konstruktor pro bázovou třídu, pokud ho bude mít nějaká z odvozených tříd.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class A
{
}

class B :A
{
public B(int i)
{

}
}
class Program
{
static void Main(string[] args)
{
B b = new B(4);
}
}
}

David Hojdar   NOVÝ
12. 5. 2008

Psát o privátních konstruktorech že jsou "skoro k ničemu" je slušně řečeno úsměvné :-). Možná by bylo dobré si o tom něco přečíst - vždyť takové třídy ve Frameworku jsou a jsou "k něčemu" a dokonce můžete získat její instanci (i když ne pomocí "new"). Příkladme za všechny budiž "System.Data.DataRow" (i když pravda ten má konstruktor protected a ne private, ale problém je to podobný). Chtělo by to trošku vylepšit :§-)
Jinak dobrý článek.

jakubk, autor článku   NOVÝ
16. 5. 2008

Reagoval na komentář od uživatele Rene Stein : Děkuju za výtku, zkoušel jsem to a skutečně máte pravdu. Hned to opravím.

Teclik   NOVÝ
19. 5. 2008

Lidi, vymyslel jsem si takovou blbost, ale může mi někdo poradit? Stručně řečeno: konstruktor na základě Id načte data z databáze a naplní jimi vlastnosti objektu (reflexe). Poté instanci uloží do kolekce. Pokud bude znovu volán tento konstruktor se stejným Id, chtěl bych, aby se již obsah třídy nenačítal z databáze, ale vrátil rovnou z paměti. Takže bych potřeboval něco jako FillFromCache(this), což ale nefunguje - nevyhodí výjímku, ale vlastnosti třídy jsou nastaveny na null. Napadá někoho, jak toto obejít? Jestli to dobře chápu, tak v konstruktoru nejde "přesměrovat" referenci instance na jinou... Díky.

vkvkvk   NOVÝ
24. 6. 2008

Reagoval na komentář od uživatele Teclik :
Zkusil bych tu kolekci deklarovat jako static.

mirek   NOVÝ
2. 10. 2008

No myslim, ze takovychto clanku je na netu miliarda. Uz kdyz si date genericky vytvorit novou klasu, tak se tohle predvyplni. A zdroj... sorry, ale "prelozit" clanek z anglictiny a podepsat se pod nej... a pak pod svou fotkou mit seznam podobnych clanku. Uz aby se zacaly za tohle sekat ruce...

hooker   NOVÝ
17. 2. 2009

To jste napsal je tupym prekladem http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=777. Proc se tvarite jako autor?

jakubk, autor článku   NOVÝ
18. 2. 2009

Reagoval na komentář od uživatele hooker :Odkaz na zdroj je vždy dole pod článkem, není to krádež.

Radek   NOVÝ
1. 5. 2009

Dušan Janošík píše:

Je to IMHO dobrej článek pro začátečníky, ale mám pocit, že už to tady bylo. Cennější by bylo probírat další problematiku. K obsahu bych vytknul chybné odsazení zdrojáků.

BTW: Statické konstruktory jsou, pokud vím, vždy volány před vytvořením první instance nebo před prvním přístupem ke statickým členům.


Podle mě se jedná o skvělý článek. Začínám v C sharp a nehledám tutoriály typu "Hello word", ale chci znát všechny spojitosti z teoretického hlediska a vědět, jak co funguje, třeba i privátní konstruktory. Děkuji autorovi toho článku za překlad, dobrá práce.

PeterM   NOVÝ
1. 9. 2010

Reagoval na komentář od uživatele Jakub Kottnauer :
heh nikto tu nevravi o kradezi ale o tom, ze je to len surovo prelozene a sem vlozene ...kebyze napises nieco zo svojej hlavy nikto ti na to nic nepovie max ta upozorni na nedostatky. V kazdom pripade ludom ktory nevedia po anglicky a su zacinajuci programatori to pomoct moze.

K tym privatnym konstruktorom. To co si napisal uz asi vies, ze je blbost.

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý