- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen notebookot vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- KártyaPC topik (Odroid, Olinuxino)
- VR topik (Oculus Rift, stb.)
- Gaming notebook topik
- Milyen Android TV boxot vegyek?
- Hobby elektronika
- Apple notebookok
- Milyen alaplapot vegyek?
Hirdetés
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Rossz üzlet az EV-kölcsönzés
it Küszködik az EV-kölcsönzés miatt a Hertz Global, még több EV-t adnak el.
-
Igencsak szerény méretekkel rendelkezik az Aetina Xe HPG architektúrás VGA-ja
ph Az 50 wattos modellt beágyazott rendszerekbe, MI-vel kapcsolatos munkafolyamatokhoz és edge applikációkhoz szánták.
Új hozzászólás Aktív témák
-
Lortech
addikt
1. kérdés, itt hol van a konstruktor és mit csinál itt? Annyit tudok róla, hogy egy speiciális metódus ami példányosítás során jön létre... De jó lett volna egy magyarázat a kódban, hogy mit hol hogyan működik.
Így van, a konstruktor egy speciális metódus ami az objektum példányosításakor az obj. kezdőállapotát hivatott beállítani.
Ha nem adsz meg konstruktort, akkor implicit módon egy paramétert nélküli konstruktor jön létre.
A példában a konstruktor beállítja a két példány szintű változót a paraméterben kapott értékre.
Tehát a
Dog d=new Dog("Rex", 2);
sor után hivatkozhatsz d.name és d.age -re.2. kérdés: public Dog(string n, int a) lenne az objektum?
Nem, ez konkrétan a konstruktor. Az objektum az osztályod egy példánya.
kieg: vegyük észre, hogy nincs visszatérési típusa, ez is a konstruktor ismérve.3. kérdés a this. metódus itt mit csinál? Annyi magyarázat volt, hogy egy konstruktorból hívhatunk egy másikat...
A this kulcsszó (a Dog nevű osztály definíciójában vagyunk)
itt az objektumpéldány referenciájára mutat. Gyak. a példányt magát jelenti. Ezzel például más metódusnak adhatjuk át az aktuális példánynak vagy szokás azonos névvel ellátni a bemenő paraméterek nevét az osztály megfelelő mezőinek neveivel.
pl.using System;
class Dog
{
private string name;
private int age;public Dog(string name, int age)
{
this.name=name;
this.age=age;
}
}class Program
{
static public void Main()
{
Dog d=new Dog("Rex", 2);
}
}A példában name és age a bemenő paraméter, a this kulcsszóval azt mondod meg, hogy a this-en keresztül hivatkozott mezők az objektumpéldány példány szintű változói, nem pedig a bemenő paraméterek.
this()-szel hívhatsz másik konstruktort is egy konstruktorból, pl:
...
private String sex;
public Dog(string name, int age)
{
this(name,age,"ismeretlen");
}
}public Dog(string name, int age, String sex)
{
this.name=name;
this.age=age;
this.sex = sex;
}
}...
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lortech
addikt
Ez itt kérem szépen szintén egy konstruktor, paraméternélküli..
Ennek önmagában sok értelme nincs, mert ha nincs más konstruktorod megadva, akkor ez automatikusan elérhető (feltéve h. lehet példányosítani az osztályból stb.).
Viszont ha már írsz akár egy konstruktort is, aminek van paramétere, akkor ezt az alap paraméter nélküli konstruktort ( Animal() ) már csak úgy tudod meghívni, hogyha explicite definiálod.Thank you to god for making me an atheist
-
Lortech
addikt
Ez itt valami példa lenne gondolom a referencia és az érték szerinti paraméterátadások ill. annak mellékhatásainak szemléltetésére.
Value metódus - érték szerinti-
Reference metódus - referencia szerinti paraméterátadás.Value metódusban a bemenő paraméter int típus, "érték típus", ha hivatkozol rá a változónévvel, akkor az értékre hivatkozol (nem referenciára).
Ha megváltoztatod a metóduson belül a "param" bemenő paramétert, nem változik meg a Value függvény hívása helyén megadott változó, mivel a metódus annak egy másolatát kapja meg valójában.(Value hívását nem másoltad be, de gondolom ott lehet a könyvben vmi ilyesmi példa is, hogy:
WrappedInt wi = new WrappedInt();
Console.WriteLine(wi.Number);
Pass.Value(wi.Number);
Console.WriteLine(wi.Number);)
A Reference metódus egy referencia típust vár bemenő paraméterként, a típus a WrappedInt. A példában a Reference metódus hívása helyén a WrappedInt osztály
"wi" nevű objektumpéldányát, ill. annak referenciáját adja át a metódusnak, tehát az eredetileg WrappedInt wi = new WrappedInt(); sorral példányosított objektumra képes hatni, ahogy teszi is az objektum "Number" mezőjének megváltoztatásával.Konkrétan a kérdésedre válaszolva:
1, mert a Reference fgv formális paraméterlistája a"WrappedInt param", tehát nem int típust vár a fgv, ha a Numbert adta volna át, azzal nem tudta volna szemléltetni a referencia szerinti paramátadást.
2, szóval param.Number = 42;
param a bemenő paraméter, típusa WrappedInt, ami egy osztály, referencia típus, tehát konkrétan param az ugyanaz az objektum, ill referenciája, mint amit a WrappedInt wi = new WrappedInt(); sorral példányosítottál.
A WrappedInt egyetlen mezője a Number, példányszintű és publikus, ezért hivatkozhatsz rá a példában megadott módon param.Number-ként. A mezőnek egyszerűen értéket adunk.Thank you to god for making me an atheist
-
Lortech
addikt
Igen, "valahol" benne van a memóriában, valahogy úgy lehet elképzelni, mintha lokális változóként deklaráltad volna a függvényen belül, és a legelső mozzanat a függvényen belül az, hogy értékül adod neki azt az értéket ami a paraméter.
tehát vmi ilyesmi:public static void Value()
{
int param = 42;
...
}Mindez automatikusan történik. Value lefutása után param felszabadul. Kezdeni ne akarj vele semmit.
Az, hogy példányszintű, azt jelenti, hogy az objektum egy példányához tartozik, kell hozzá példány, hogy elérd a mezőt, minden példánynak van egy-egy ilyen mezője, nem osztályszintű (statikus).Thank you to god for making me an atheist
-
bpx
őstag
először meghívja a 2 paraméteres konstruktort (az ami a this mögött van), utána meg az eredetit amit a példányosításnál hívtál (1 paraméteres)
most így hirtelen nem tudok értelmes gyakorlati példát mondani, de pl. akkor érdemes használni, ha egy osztálynak több konstruktora is van, többféleképp is lehet példányosítani, és a konstruktorok egy bizonyos részig ugyanazt csinálják
ekkor érdemes kivenni ezt a közös részt külön, és ahelyett hogy többször kellene ugyanazt leírni, elég csak a : this-el hivatkozni ráde egyébként ez le sem fordul, mert a 10.0 az double
[ Szerkesztve ]
-
ArchElf
addikt
Viszonylag gyakran akkor alkalmazzák, ha több opcionális kontruktor változóra lehet szükség - default konstruktor gyártására lehet alkalmani a this módisítót...
Érdemes megnézni az előre legyártott MS osztályokat, ott bőven van példa opcionális konstruktor változókra:
Pl System.IO.FileStream:public FileStream(IntPtr handle, FileAccess access);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
public FileStream(SafeFileHandle handle, FileAccess access);
public FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync);
public FileStream(string path, FileMode mode);
public FileStream(string path, FileMode mode, FileAccess access);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, bool useAsync);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options, FileSecurity fileSecurity);(kicsit sorbarendeztem őket, hogy jobban látszódjanak a csoportok)
Ezeket mind meg lehet csinálni egyesével is, de sokkal egyszerűbb (és biztosabb megoldás) több különálló csoportra osztani, és a csoporton belül a speciálisabbakból (kevesebb változót tartalmazót) meghívni az általánosabbakat.AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Lortech
addikt
Ebben az esetben a fordító hogy a az abstract double Ado property nem származhat az Allat osztályból:
Feltételezem, azt akartad mondani, hogy a fordító azt mondja, hogy...
De nem ezt mondja, hanem azt, hogy a Tyuk osztályban meg kell adnod az Ado property implementációját, mivel az ősben abstract metódus.
Viszont a kód amit beszúrtál, nem erre utal, mert ahogy nézem ott van az implementáció, amire panaszkodik. Viszont a Baromfi.Hizlal metódusodban nem lesz jó ha suly változóra hivatkozol (így, kis kezdőbetűvel), mert az az ősének egy privát mezője, amit a Sertes osztályból nem tudsz elérni, viszont épp ezért van propertyd rá, a Suly.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Gyuri16
senior tag
ez a resz nem jo:
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
s.MalacSzam += 1;
}itt az s valtozod egy Sertes osztalyu objektumra mutat. amit csinal a ciklusod, hogy hozzaadja ugyanazt az egy malacot 5-szor, es minden lepesnel egyel noveli a szamat, ezert aztan az udvarodban 5-szor ugyanarra az objektumra mutato referenciaid lesznek.
ha kulonbozo malacokat akarsz hozzaadni akkor be kell szurni valahova a ciklusodba egy new-t, es igy egy uj Sertes objektum jon letre, ami fuggetlen a tobbitol:Sertes s;
for (int i = 0; i < 5; i++)
{
s=new Sertes();
s.Hizlal(25000);
s.MalacSzam=i+1; //egytol legyen szamozva
udvar.Add(s);
}ennek az eredmenye: az udvarban 5 db diszno lesz, 1..5 sorszamokkal, mindegyik 25000-re hizlalva.
mod:
"Ez ideig rendben van. A MalacSzam (ami sorszám lenne), és a Sulyt is (hízlal metóduson keresztül) mindegyiknél ugyanaz."
ez ugyanaz a hiba mint amit irtam, nem a MalacSzam es Suly ugyanaz, hanem a diszno ugyanaz, csak 5 helyen hivatkozol ra[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
ArchElf
addikt
Igazából neked szerintem, valami source control rendszerre lenne szükséged.
Ott viszonylag egyszerű verzióváltásokat, meg elágaztatásokat csinálni...
Én otthon a VisualSVN+AnkhSVN kombót használom.AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
nagyúr
-
j0k3r!
senior tag
hello!
letoltod a zip-et, aztan kitomorited, aztan megnyitod a jigsaw.sln filet (vs-ban), aztan f5, aztan kilepsz a vs-bol, aztan a jigsaw.sln mellett lesz egy bin mappa, azonbelul Debug mappa, es ott lesz a jigsaw.exe.
vs2010-ban most teszteltem es mukodik.mas:
a multkori adatbazisos feladathoz kapcsolodoan volna egy kerdesem:
hogy lehetne a Kategoria tablan belul a KategoriaNeve-ket egy comboboxban megjeleniteni ? (az osszeset)elore is koszonom a segitseget.
[ Szerkesztve ]
some men just wanna watch the world burn...
-
kingabo
őstag
Ha tudsz sql-ül, akkor a var line =... könnyen átírható LINQ-s formába (sql szerű "lekérdezéseket" írhatsz benne, de nemcsak sql-es adatbázisok lekérésére (LINQ to SQL), hanem pl listákon, tömbökön...):
var line = from x in lines
where x.Product.ProductID == product.ProductID
select x;
Ebből talán jobban látszik, hogy a lines listából kiválasztja azokat a sorokat amelyeknek a ProductID-ja megegyezik a paraméterben kapottal. A FirstOrDefault ezek közül a sorok közül visszaadja az elsőt vagy ha nincs a feltételnek megfelelő sor, akkor a default értéket, ami itt a null.
Az if-es részben megvizsgálod, hogy van-e ilyen sorod, ha nincs akkor beszursz egyet a paraméterekben kapott adatokkal, ha van, akkor csak növeled a darabszám értékét.
Szemléletesen: ha jól sejtem ez egy webshopban a kosárba tételnek a kódja. Vagyis miután valamit be akarsz tenni a kosárba megvizsgálod, hogy benn van-e (var line = ...), aztán ha már benne van a kosárban, akkor csak a bentlévő darabszámot növeled meg a most berakottakkal. Ha nincs benne, akkor egy új sor hozzáadásával bekerül az új elem a kosárban.
Remélem érthetően írtam le. -
Jester01
veterán
itt az i == j-t nem értem, hogy az miért kell
Azért, hogy saját magával ne hasonlítsa össze.Illetve a talált és a talált2 az pontosan jelent?
Azok boolean változók, azt jelzik, hogy volt-e egy vagy több találat.Ez egy elég rossz kód, ne ebből akarj programozni tanulni.
Jester
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Windows 11
- Garmin Forerunner 165 - alapozó edzés
- Kerékpárosok, bringások ide!
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen notebookot vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Automata kávégépek
- Cyberpunk 2077
- Pécs és környéke adok-veszek-beszélgetek
- További aktív témák...
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5
- Bomba ár! HP EliteBook 830 G6 - i7-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude 5580 - i5-G6 I 8-16GB I 256 SSD I 15,6" FHD I HDMI I CAM I W10 I Garancia