Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
zdravim, mohol by som otazku?
potrebujem v c# spravit proceduru s parametrom, aby som ju mohol rekurzivne volat, ale su v nej premenne, ktore su deklarovane v static void Main(string[] args) a vypisuje mi, ze ich nepozna..
mohol by mi niekto napisat, do ktorej casti programu treba dat tu proceduru, radsej aj jej tvar :D fakt sory za taku blbu otazku, ale este sa v c# len ucim :)
Offline

↑ Downey:
Nejsem si jistý, jestli správně chápu otázku. "args" je argument metody Main(), takže nikde jinde tu referenci na "args" nemáš. Jestli chceš deklarovat metodu, která používá ty vstupní "args", pak musí mít jako jeden z argumentů "string[] neco" a při volání metody mu "args" předáš jako parametr. Druhá možnost je, že si vstupní args v Main uložíš do nějaké proměnné.
Offline
no teraz som trochu mimo
mam to takto
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//len tu mam cely program aj spolu s deklaracoiu premennych
}
}
}
ak som spravne nasiel a pochopil, tak procedura sa pise ako void nieco(pripadne parametre)
v takom tvare som to dal najprv medzi class.. a static void Mian... ale nepoznal premenne a ked som to dal do static void Main.. tak tam mi to vobec nezobralo
to je chyba, ze neviem vobec, ako to zapisat a kam
Offline

↑ Downey:
Já jsem to předtím asi pochopil trochu jinak, než jak jsi to myslel.
ak som spravne nasiel a pochopil, tak procedura sa pise ako void nieco(pripadne parametry)
Jako první bych se zkusil přeorientovat na C# pojmenování. Procedura v C# neexistuje, C# má jen metody. Ať už metoda něco vrací nebo nevrací, tak je to prostě metoda. To vychází z toho, že C# je plně objektový jazyk.
v takom tvare som to dal najprv medzi class.. a static void Mian... ale nepoznal premenne a ked som to dal do static void Main.. tak tam mi to vobec nezobralo
To je vcelku logické -- Main je metoda jako každá jiná, takže pokud deklaruješ nějakou proměnnou v jedné metodě, jiná metoda ji prostě neuvidí. Máš v zásadě dvě možnosti, jak to zprovoznit, o obou už jsem se zmiňoval jinde:
1) Předat potřebné proměnné jako argument. Dejme tomu, že máš v Main() dvě čísla, která chceš té metodě předat. Pak to můžeš udělat takto:
public void Metoda(int a, int b)
{ kód metody }V metodě Main() pak zavoláš Metoda(nejakeCislo, jineCislo);
2) Vlastnost třídy. Můžeš udělat něco takového:
namespace ConsoleApplication1
{
class Program
{
public static int a;
public static int b;
static void Main(string[] args)
{
a = 10;
b = 20;
}
public static void Metoda()
{
return a * b;
}
}
}Offline