NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Jak použit proměnnou z konstruktoru ve třídě?

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
michaelbeats7:24.3.2016 13:24

Class Otazky
{
Button b;
public Otazky(Button b)
{
b = b;
}
public void otazky(string otz)
{
a tady bych chtěl použit to b z konstruktoru. Hodně věci by mi to ulehčilo, kdybych ten Button nemusel zakládát zase v ty metodě, protože jsem to zkratil ve skutečnosti je ten konstruktor i metoda mnohem delší, ale je to v podstatě to samé.
}

 
Odpovědět
24.3.2016 13:24
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 13:34

odkaz se zkrývá v proměnné this. Pouziti tedy je:

this.b = b;

Pouzivej priste vlozeni zdrojoveho kodu. :)

Nahoru Odpovědět
24.3.2016 13:34
No hope, no future, JUST WAR!
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 13:35
Class Otazky
{
Button b;
public Otazky(Button b)
{
  this.b = b;
}
public void otazky(string otz)
{
  nejaka logika
}
Editováno 24.3.2016 13:36
Nahoru Odpovědět
24.3.2016 13:35
No hope, no future, JUST WAR!
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na michaelbeats7
Tomáš Brůna:24.3.2016 13:38
Class Otazky
{
private Button b;
public Otazky(Button b)
{
this.b = b;
}
public void otazky(string otz)
{
 this.b.Text="text tlačítka";
}

něco takového?
Tady:

Class Otazky
{
Button b;

musí (nebo mělo, nevím jestli to funguje i bez toho) by mělo být jedno z tohoto:

  • private
  • public
  • protected
Nahoru Odpovědět
24.3.2016 13:38
Vi veri universum vivus vici
Avatar
Tomáš Brůna
Tvůrce
Avatar
Tomáš Brůna:24.3.2016 13:38

:-@ musím se naučit rychleji psát :D

Nahoru Odpovědět
24.3.2016 13:38
Vi veri universum vivus vici
Avatar
Odpovídá na Tomáš Brůna
michaelbeats7:24.3.2016 13:48

V erroru mi to píše "Klíčové slovo 'this' není platné ve statické vlastnosti, ve statické metodě ani ve statickém inicializátoru pole"

 
Nahoru Odpovědět
24.3.2016 13:48
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 13:51

Máš v kódu někde něco statického? Pošli celý kod a vlož jej jako zdroják.

Nahoru Odpovědět
24.3.2016 13:51
No hope, no future, JUST WAR!
Avatar
Odpovídá na Tomáš Brůna
michaelbeats7:24.3.2016 13:51

Aha už to mám.. díky moc

 
Nahoru Odpovědět
24.3.2016 13:51
Avatar
Odpovídá na michaelbeats7
michaelbeats7:24.3.2016 13:54

Anebo vlastně nemam :D potřebuju to mít statický.

 
Nahoru Odpovědět
24.3.2016 13:54
Avatar
Odpovídá na vajkuba1234
michaelbeats7:24.3.2016 13:55

Ano, potřebuju to mít statický.

 
Nahoru Odpovědět
24.3.2016 13:55
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 14:05

Staticky prvek nalezi tride, instancni zase instanci tridy, a nelze k nim mezi sebou pristupovat. Koukni na zdejsi clanek o statice...

Nahoru Odpovědět
24.3.2016 14:05
No hope, no future, JUST WAR!
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 14:08

Staticke metody byvaj pomocne metody a pristupuje se k nim: Trida.Staticka­Metoda(params) ...

K instancnim metodam zase objekt.Metoda(pa­rams)

Nahoru Odpovědět
24.3.2016 14:08
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
michaelbeats7:24.3.2016 14:17

Hele potřebuju mimo třidu udělat něco takovýho : otazkyVsechno otaz = new otazkyVsechno(but­ton1)
otaz.Otazky("to je to aa", "to je to bb")

Prostě budu mít asi 100 otazek a 4 buttony. V ty metodě otazky, budou ty otazky a chtěl jsem aby v tom konstruktoru byly ty buttony, at není ta metoda zbytečně dlouhá. Snad to chápeš.

 
Nahoru Odpovědět
24.3.2016 14:17
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 14:25

Tak pokud tam ma byt tolik otazek, tak bych pouzil List jako jejich seznam, ktera ma jiz metody pro pridavani atpod. Kazdopadne to co jsi poslal vlozis do metody Main v program.cs

Nahoru Odpovědět
24.3.2016 14:25
No hope, no future, JUST WAR!
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na michaelbeats7
vajkuba1234:24.3.2016 14:30

Co delaji ty buttony?

Nahoru Odpovědět
24.3.2016 14:30
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
michaelbeats7:24.3.2016 15:49

Do těch buttony se zapišou odpovědi. Já to do listu ale nechci právě dávat. Chtěl jsem udělat tu metodu ve který bude otázka, odpoved1,odpo­ved2,odpoved3,od­poved4, spravna odpoved. Ale musím to mít ve třídě bohužel a musím ji použit mimo třídu, takže třeba ve formu 1 bych napsal tuhle metodu OtazkyVsechno­.Otazky("Kolik je 1+1", "1", "2","3" ,"4", "1").

 
Nahoru Odpovědět
24.3.2016 15:49
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na michaelbeats7
Petr Čech:24.3.2016 16:53
OtazkyVsechno.b=b;

Jinak bych ale doporučoval

  • anglické pojmenování všeho (i když je to jen pro tebe)
  • použití lepšího názvu než "b", to nic neříká a za čas zapomeneš, co to dělá
Nahoru Odpovědět
24.3.2016 16:53
the cake is a lie
Avatar
Odpovídá na Petr Čech
michaelbeats7:24.3.2016 17:18

OtazkyVsechno.b = b; nefunguje bohužel

 
Nahoru Odpovědět
24.3.2016 17:18
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na michaelbeats7
Petr Čech:24.3.2016 17:46
Class Otazky
{
private static Button b;//tohle musí být statické
public static Otazky(Button b)
{
  Otazky.b = b;
}

Udělej si jasno v tom, co má být statické a co ne ;-)

Nahoru Odpovědět
24.3.2016 17:46
the cake is a lie
Avatar
Odpovídá na Petr Čech
michaelbeats7:24.3.2016 18:03

Jooo konečně. Děkuju moooc.

 
Nahoru Odpovědět
24.3.2016 18:03
Avatar
michaelbeats7:24.3.2016 18:15

Hele tak nefunguje, statický konstruktor nemuže mít parametry.

 
Nahoru Odpovědět
24.3.2016 18:15
Avatar
Odpovídá na michaelbeats7
Neaktivní uživatel:25.3.2016 11:47

Pŕestaň blbnout se statikou, přečti si zdejší návody na OOP a zamysli se nad tím ještě jednou, určitě to půjde i bez ní...

Nahoru Odpovědět
25.3.2016 11:47
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
michaelbeats7:25.3.2016 12:26

Už to mám ... máš pravdu zbytečně jsem tam dával statickou metodu.

 
Nahoru Odpovědět
25.3.2016 12:26
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 23 zpráv z 23.