NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 1 - Úvod do C# a .NET Frameworku

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá na jakoubek.stanislav
Libor Šimo (libcosenior):8.12.2016 12:46

double pikrat(), r, o;
To pikrat() zmaz.

Odpovědět
8.12.2016 12:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
jakoubek.stanislav:8.12.2016 12:53

Smazal jsem, ale pořád to nechodí. Tentokráte na mě řve na řádku

o = 2*pikrat(r);

"An object reference is required for the non-static field, method od property". Takže tu deklaraci asi dopředu chce.

 
Odpovědět
8.12.2016 12:53
Avatar
Erik Šťastný:8.12.2016 13:09

Řešení je nejspíš víc, to co říkáš ty určitě ne, deklarace metody fakt ne :)

V tvém případě bych asi napsal

static double pikrat(double x)

Main je statická metoda a nemůžeš z ní volat nestatickou bez vytvoření instance :)

Editováno 8.12.2016 13:10
 
Odpovědět
8.12.2016 13:09
Avatar
Odpovídá na Erik Šťastný
jakoubek.stanislav:8.12.2016 13:28

skvělý, díky moc :-)

 
Odpovědět
8.12.2016 13:28
Avatar
Miskyns
Člen
Avatar
Odpovídá na jakoubek.stanislav
Miskyns:13.12.2016 21:32

I když Elisse na tuhle chybu odpověděl, tak se chci zeptat zda by nešlo v mainu přidat

Program p = new Program();

a poté na řádku, kde je

o = 2*pikrat(r);

přepsat na

o = 2*p.pikrat(r);

Byl bych rád, kdyby jste mi napsali, jestli se to takhle dá řešit, díky :)

Odpovědět
13.12.2016 21:32
Proč se to učit, když můžeš použít GOOGLE...
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Miskyns
krepsy3:13.12.2016 21:49

Tyjo, tak tenhle dotaz mě celkem zaskočil. Působí to totiž docela nepřirozeně (alespoň na mě). Řekl jsem si ale, že to nejspíš půjde, protože proč by ne, je to naprosto logické, ale raději jsem to otestoval. A nemýlil jsem se, funguje to. Použitý kód, který tedy mi VS normálně vzalo:

class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine((new Program()).pikrat(2));
        Console.ReadKey();
    }

    private double pikrat (double x)
    {
        return x * Math.PI;
    }
}
Editováno 13.12.2016 21:51
Odpovědět
13.12.2016 21:49
Programátor je stroj k převodu kávy na kód.
Avatar
Miskyns
Člen
Avatar
Odpovídá na krepsy3
Miskyns:14.12.2016 16:49

Přece jenom využívání statiky není dobré, a vždy to lze nějak obejít :)

Odpovědět
14.12.2016 16:49
Proč se to učit, když můžeš použít GOOGLE...
Avatar
Odpovídá na Miskyns
Erik Šťastný:14.12.2016 16:56

Osobně mi to přijde lepší než vytvářet třídu, která obsahuje jednu metodu a žádné proměnné :-O

 
Odpovědět
14.12.2016 16:56
Avatar
Miskyns
Člen
Avatar
Odpovídá na Erik Šťastný
Miskyns:14.12.2016 16:59

Každý má jiný vkus, ale konečný výsledek u mě by vypadal takto:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //Vytvoření instance třídy
            Program() p = new Program();
            double r, o;

            Console.WriteLine("Zadej polomer : ");
            r = double.Parse(Console.ReadLine());
            //Zavolání metody v této třídě
            o = 2*p.pikrat(r);
            Console.WriteLine("Obvod kruhu je: {0}",o);
            Console.ReadKey();

         }

        double pikrat(double x)
        {
            return (x * 3.14);
        }

    }
}
Odpovědět
14.12.2016 16:59
Proč se to učit, když můžeš použít GOOGLE...
Avatar
Odpovídá na Miskyns
Erik Šťastný:14.12.2016 17:02

Mně přijde hodně divná ta instance z třídy, která obsahuje Main (alespoň v tomhle případě). To je to co mně trápí, jinak proti instancování třídy na metodu nic nemám.

Editováno 14.12.2016 17:05
 
Odpovědět
14.12.2016 17:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 144.