Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C#- programování

Zdravím,

dělám v C# takovej prográmek .. prostě hraju si ... 5fQYRvK9 ... a potřebuju poradit.. jak udělám, když v case 'c' 'C' ... zadám n/N ... jak udělám ,aby se to vrátilo do hlavního menu zpátky ? .. BEZ GOTO

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
musis to cele zabalit do cyklu do..while od vykreslenia menu az po koniec. V podmienke bude, ze opak…
wam_Spider007 19.11.2012 22:56
wam_Spider007
Mohl by jsi názorně ukázat ? .. nevím odkud přesně kam totiž, jinak ten cyklus mě taky napadl .. :)
Bayerus 19.11.2012 22:58
Bayerus
gNTI no snad som to syntakticky nezmrvil. Dlho som nic v Ccku nepisal. Ale pozri si hlavne zaciatok…
wam_Spider007 19.11.2012 23:05
wam_Spider007
Jo díky .. funguje to :)) akorát, teď jsem dostal nápad, každou tu funkci ( sčítání , odečítání ) ud…
Bayerus 20.11.2012 10:53
Bayerus
viz napr. static-method, klucove slovo static.
MM.. 20.11.2012 11:00
MM..
vYb7KBqr Tohle by mělo fungovat :)
Bayerus 20.11.2012 11:11
Bayerus
A jinak děkuju předem za info :)) ... jedná se o chybu An object reference is required for the non-…
Bayerus 20.11.2012 12:34
Bayerus
uz som to pisal, metodu scitani musis deklarovat ako static. Staticka metoda samozrejme nemoze prist…
MM.. 20.11.2012 17:19
MM..
To už jsem zkoušel, ale když to dám nad to a do staticu, tak už se nedostanu do těch deklarací promě…
Bayerus 20.11.2012 18:09
Bayerus
Inac este k tym objektom kedze vidim ze C# je dementne oproti C++. Ty mas triedu program, a pri spus…
MM.. 20.11.2012 19:25
MM..
V čem je C# dementní?
Wikan 20.11.2012 19:53
Wikan
Ze to samo vytvori objekt triedy "program" a potom hlasi error ze nema objekt. Jaj pozeram ze preto…
MM.. 20.11.2012 19:55
MM..
Vymysleli to v Sun Microsystems, když vyvíjeli Javu. Do C# to pouze převzali. Ona ve třídě Program b…
Wikan 20.11.2012 20:05
Wikan
No ved to pisem ze trieda Program je nezmysel, keby som v Main urobil new Program tak sa to zacykli…
MM.. 20.11.2012 20:07
MM..
Ano, zacyklí. Děláš, jako by to v jiných jazycích nebylo možné. Ale netuším, proč by to někdo dělal.
Wikan 20.11.2012 20:13
Wikan
len sa to snazim pochopit, ja si myslim ze ak tam ten class je tak to musi mat nejaky vyznam, len ne… nový
MM.. 20.11.2012 20:22
MM..
V C# je prostě úplně všechno objekt nějaké třídy. Takže i metoda Main musí být uvnitř nějaké třídy.… nový
Wikan 20.11.2012 20:25
Wikan
Čo by sa malo zacykliť? Keď v Main vytvoríš novú inštanciu triedy Program, tak vytvoríš novú inštanc… nový
los 20.11.2012 20:26
los
No uvazoval som ze ak ten Main je konstruktor tak sa to zacykli, konstruktor to ale asi neni. To prv… nový
MM.. 20.11.2012 20:35
MM..
Správa sa to úplne konzistentne. Vstupnú triedu si môžeš nastaviť akú chceš, ale musí mať statickú m… nový
los 20.11.2012 20:53
los
Stale je tam logicky nezmysel na ktory narazam od zaciatku - preco musi byt main static, ak framewor… nový
MM.. 20.11.2012 21:11
MM..
Framework nevytvoril inštanciu triedy Program. Iba spustil statickú metódu Main triedy Program. V t… nový
los 20.11.2012 21:21
los
A z toho vyplyva ze ta trieda je tam len pre srandu kralikov, nie? ;) (uz sa zaciname tocit dokoleck… nový
MM.. 20.11.2012 21:29
MM..
Tá trieda je tam len preto, aby tá metóda mohla patriť nejakej triede. Skrátka ten objektovo oriento… nový
los 20.11.2012 21:33
los
nie kade tade, len Main a globaly. Objektovo orientovany pristup to neni ked sa nevytvoril ziaden ob… nový
MM.. 20.11.2012 21:36
MM..
Celá .NET platforma je dementná, nutnosť inštalovať .NET framework pre .NET aplikácie.... Ach jaj...
pme 20.11.2012 20:11
pme
.NET platforma je na rozdiel od iných platforiem celkom dobre vymyslená. Ak pri nejakej inej platfor… nový
los 20.11.2012 20:36
los
No aby som len nepísal off topic príspevky tak prikladám aj nejaký program, ktorý by mal riešiť to,… poslední
los 20.11.2012 22:58
los

musis to cele zabalit do cyklu do..while od vykreslenia menu az po koniec. V podmienke bude, ze opakuj cely cyklus pokial bolo stlacene 'c' alebo 'C' alebo proste pismeno, ktore ma predstavovat navrat do menu.

gNTI

no snad som to syntakticky nezmrvil. Dlho som nic v Ccku nepisal. Ale pozri si hlavne zaciatok main funkcie, kde som vlozil zaciatok cyklu. Potom si pozri case pre N, kde sa nastavi premenna navrat na 1. A potom si pozri koniec cyklu dole a jeho podmienku. Snad pomoze aspon ako nacrt.

Jo díky .. funguje to :)) akorát, teď jsem dostal nápad, každou tu funkci ( sčítání , odečítání ) udělat pro to metody -> void scitani() apod.. a pak si to postupně v casech vyvolat ...akorát má to problém ..

Nx20G0qHa

An object reference is required for the non-static field, method, or property 'ConsoleApplication2.Program.scitani()'

uz som to pisal, metodu scitani musis deklarovat ako static.
Staticka metoda samozrejme nemoze pristupovat na nestaticke membery objektu ale to u teba zatial nehrozi.

A zvcajne je treba deklarovat metodu nad metodou v ktorej sa vola, a nie na konic. Aby prekladac ktory parsuje zdrojak odvrchu po spodok v mieste kde sa metoda vola uz vedel ze jak ta metoda vypada. Alebo sa do .h suboru da prototyp metody (to asi mas inac by to hadzalo iny error)

To už jsem zkoušel, ale když to dám nad to a do staticu, tak už se nedostanu do těch deklarací proměnných.

error: An object reference is required for the non-static field, method, or property 'ConsoleApplication2.Program.vysledek_d' + vsechny ty proměné ve static void scitani()

2ANFAB6R

Inac este k tym objektom kedze vidim ze C# je dementne oproti C++. Ty mas triedu program, a pri spusteni programu uz je vytvoreny jeden objekt triedy program. Ten objekt sam seba referencuje pomocou slova this, neviem zhlavy presne jak to pouzivat v C# (zhlavy viem len C++), ale malo by ist zavolat aj NEstaticku metodu v ramci tej triedy "Program" pomocou this.scitani()
Ak nie tak ti to C# experti napisu ja zhlavy neviem jak je to v C# :)

Ze to samo vytvori objekt triedy "program" a potom hlasi error ze nema objekt. Jaj pozeram ze preto lebo aj Main je static. To kto toto vymyslel? zadefinovat trioedu Program a Main dat defaultne ako static? Asi bill gates :-D
P.S. ok tak nie dementni, ale pre zaciatocnika je to riadny gulas. Mali tam dat defaultne len Main bez triedy.

len sa to snazim pochopit, ja si myslim ze ak tam ten class je tak to musi mat nejaky vyznam, len neviem prist na to ze jaky :)
Mozno ze sa to pri new Program nezacykli, ak sa automaticky nespusti Main() hned pocas new (Main je konstruktor ci co?). Ale zmysel to asi ziaden nema ten class. Ok nic to je fuk, to len tak nahlas uvazujem :)

Čo by sa malo zacykliť? Keď v Main vytvoríš novú inštanciu triedy Program, tak vytvoríš novú inštanciu triedy Program. To, že metóda Main je v triede Program, je kvôli tomu, že je to objektovo orientovaný jazyk narozdiel od procedurálno-makro-funkcionálneho-objektového-šabl ónového-negenerického gulášu bez sebareflexie. ;-)

No uvazoval som ze ak ten Main je konstruktor tak sa to zacykli, konstruktor to ale asi neni. To prve Main sa teda spusti nejakym zazrakom :) Ano spusti ho framework ale preco potom nespusti aj to druhe Main? :) Moc konzistentne sa ta trieda nesprava :) OK nechajme to (len podpichujem :)

BTW. k tomu this - staticka metoda asi nema this ani v C#, takze to s this nepojde (sorry za balamutenie dotazovatela)

BTW2. samotne CPU je procedurálno-makro-funkcionálne negenericky guláš bez sebareflexie ;))

Správa sa to úplne konzistentne. Vstupnú triedu si môžeš nastaviť akú chceš, ale musí mať statickú metódu s názvom Main. Predvolene je vstupnou triedou trieda s názvom Program. Je to podobné ako v C++ - tam sa tiež hlavná metóda nemusí volať main. Neviem o akom druhom Main píšeš.

Áno, statická metóda v C# nemôže používať this a ani sa to neskompiluje.

Ten guláš je v pohode, ale od istej úrovne je skrátka lepšie použiť nejaký framework namiesto assembleru. :-)

Stale je tam logicky nezmysel na ktory narazam od zaciatku - preco musi byt main static, ak framework vytovril objekt? Alebo framework nevytvoril objekt tej triedy? Tak potom kde sa nachadzaju tie globalne premenne? Aha tie su tiez static. Takze v triede Program nemozem mat normalnych datovych memberov ne-static? Aha mozem ale oni sa nealokuju? (LOL)
Druhe Main som myslel to Main v tom druhom objekte ktory vznikne po new Program.

Ok ja vidim ze je to pekne zapuzdrene, ale potom by Main nemalo byt static a framework by mal vytvorit objekt tej triedy. To by mi davalo logiku.

Framework nevytvoril inštanciu triedy Program. Iba spustil statickú metódu Main triedy Program.

V triede Program môžeš mať aj normálne nestatické členy. Keď zavoláš statickú metódu, tak sa tie nestatické členy samozrejme nealokujú. Alokujú sa až po vytvorení inštancie triedy Program. Statické členy sa alokujú pred prvým použitím triedy.

Druhý Main tam nie je, pretože tá metóda je statická. Keď inštancuješ Program, tak tá metóda Main bude stále len jedna a tá istá (a bude patriť triede Program a nie inštancii triedy Program).

Keby musel framework vytvárať pri spúšťaní inštanciu triedy Program, tak by museli byť na takú triedu kladené ďalšie podmienky. Musela by mať napr. konštruktor bez parametrov a pod. Ako statická metóda je to oveľa jednoduchšie.

nie kade tade, len Main a globaly. Objektovo orientovany pristup to neni ked sa nevytvoril ziaden objekt, to znamena ze to framework len staticky placol stejne jak v procedurálno-makro-funkcionálneho-objektového-šabl ónového-negenerického gulášu bez sebareflexie, proste len na to som narazal ;)) Je to tam len na oko a uplne to zmiatlo zaciatocnika (ze ma class bez objektu).

P.S. ale aspon sa chalan naucil ze co to je objekt a co static :)

.NET platforma je na rozdiel od iných platforiem celkom dobre vymyslená. Ak pri nejakej inej platforme neinštaluješ framework, tak si tie knižnice musíš priniesť s programom sám. Zbytočne tak duplikuješ štandardnú funkcionalitu, častokrát s chybami. Ach jaj.

Zpět do poradny Odpovědět na původní otázku Nahoru