Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 5. diel - Typový systém druhýkrát - Dátové typy v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na Lukáš Nový
Jan Vargovský:5.2.2014 19:39

protože když napíšeš ReadLine tak ta metoda vrací string, takže můžeš zavolat cokoliv co má objekt string a to je buď length a nebo trim, když zavoláš length vrátí se ti int, zatím co když zavoláš trim, vrátí se ti nový string.

Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na Lukáš Nový
Jan Vargovský:5.2.2014 19:45

Btw díky toho můžeš napsat třeba takový kód

internal static class Program
{
    [STAThread]
    private static void Main(string[] args)
    {
        string s = "ahoj";
        Console.WriteLine(s.Zvyrazni().Zvyrazni().Zvyrazni());
    }

    private static string Zvyrazni(this string s)
    {
        return '*' + s + '*';
    }
}

A výsledek je

***ahoj***
Editované
Avatar
Odpovedá na Jan Vargovský
Lukáš Nový:6.2.2014 12:42

Moc ti nerozumím.
Ale to bude až v tom OOP ne?

Editované
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na Lukáš Nový
Jan Vargovský:6.2.2014 15:31

Tohle nemá s OOP nic společného, tady třeba řadí metody do oop, já byl zvyklý na f-ce z jinačích jazyků, tak jsem je používal co nejdřív.

Avatar
petrph
Člen
Avatar
Odpovedá na Lukáš Nový
petrph:7.2.2014 15:19

Ahoj,má souvislost s OOP.A to tím základním principem, že každý objekt má v sobě nějakou hodnotu(atribut),a­le i metody které s stou hodnotou mohou pracovat.Soupis těch hodnot máš v popisu třídy toho objektu-čili v online nápovědě C# si najdeš třídu String a tam si přečteš.
A pak tedy platí pravidlo že pokud je výsledkem té metody nějaký objekt, ta zase zase na něj můžeš použít jeho metody.. výsledem zase může být nějaký objekt, na něj můžeš použít jeho metody..až nakonec poslední metoda vpravo vrací hodnotu do proměnné která je na začátku řádku.Konkrétně kdybych se pokusil "dešifrovat toto: string delsi = Console.ReadLi­ne().Trim().Len­gth;
Začneš od místa za závorkou,Conso­le.ReadLine() načte nějaký text, který za dáš z klávesnice, dejme tomu " ABCD " (na začátku a konci jsou mezery.) Na ten výslededek se zavolá metoda stringu Trim (čímž se umažou ty mezery), a vrátí výsledek "ABC",a jako poslední se volá vlastnost Length kteá ti vrátí délku toho "ABC", čili číslo 3.
Takže odpověď je to, že neexistuje nějaké obecné pravidlo "co psát dřív: aby to fungovalo.Ale ty musíš vědět (najít si v nápovědě) co ty metody dělají a pak je postupně seřadit tak aby ti správně zpracovaly prvotní objekt do výsledného tvaru jaký potřebuješ, asi jako stroje na výrobní lince..

Avatar
fejjaaas
Člen
Avatar
fejjaaas:7.2.2014 16:15

Dovolím si něco poupravit, pokud jsem to pochopil správně, reagoval jsi na příspěvek, který obsahoval tento zápis: string delsi = Console.ReadLi­ne().Trim().Len­gth
Rozhodně není pravda, že se to v tomto případě vykoná v pořadí: Length, Trim, ReadLine... Mám pocit, že jsi reagoval trochu na jinačí případ. V tomto případě, který jsem uvedl výše se ty metody vykonávají postupně, tudíž ReadLine, Trim a Length(vlastnost).
Ty jsi to vysvětloval na tomto příkladu: char b = char.Parse(Con­sole.ReadLine(), což je úplně něco jiného, než výše zmíněný příklad. Zde je Console.ReadLine() hodnotou metody Parse, nikoliv rovnocenná metoda metodě Parse. Rád si přečtu reakce na můj komentář, jestli má hlavu a patu nebo jsem tu sesmolil nesmysl :-) Díky, přeji hezký den.

Avatar
petrph
Člen
Avatar
Odpovedá na fejjaaas
petrph:7.2.2014 18:26

Ahoj- ano, reagoval jsem na Console.ReadLi­ne().Trim().Len­gth, a to pořadí se skutečně vykonává ReadLine, Trim a Lenght, tak jsem to i v komentáři nahoře slovně vyhodnocoval.Takto se vyhodnocují metody objektu tou tečkou mezi nimi říkáš že voláš vpravo stojící metodu z objektu který je od ní nalevo).
Ten druhý příklad
*
int a=Int32.Parse(Con­sole.ReadLine());

  • se musí vyhodnotit zase trochu jinak. Vidíš že mezi těmi Parse a Console.ReadLine není tečka-ale že ten výraz Console.ReadLine() je v závorce za Parse-čili je jeho hodnota předávaná metodě Parse jako její parametr. Takže slovní vyhodnocení zní "spustí se metoda Console.ReadLine(), zadáš z klávesnice nějaké číslice 123-a toto se jako textový řetězec se předá jako parametr metodě Parse("123"), která ho zpracuje na numerickou hodnotu 123.

Jinak jak jsem to přepsal s int to se používá pořád, s char jak jsi to napsal to nemá valný smysl,i když to formálně funguje taky (při vložení právě 1 znaku).

Avatar
fejjaaas
Člen
Avatar
Odpovedá na petrph
fejjaaas:7.2.2014 20:09

Měla to být reakce na MrPabloz, nechápu, kde se stala chyba :-). Tam to vypadalo, že reagoval na něco trochu jiného, než na co se ho dotyčný ptal. Ale i tak díky za reakci, rád si počtu názory lidí. Ahoj ;-)

Editované
Avatar
dolakdavid
Člen
Avatar
dolakdavid:5.3.2014 22:12

Krokonosohroch :D pobavilo, supr navod.

Avatar
alesekmoravec123:18.5.2014 23:25

Vyborné tutoriály, člověk to pochopí, nezkušenému to nepřipadá jako když na něj mluvíš marťanštinou. Zatím jsem zkoušel prográmek na výuku S/Z, nebo kalkulačku s mocninátorem. :-)

Odpovedať
Udělat něco blbůmvzdorné je nemožné jelikož se vždy objeví nějaký větší blbec.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 159.