- Telekom mobilszolgáltatások
- Motorola Edge 60 és Edge 60 Pro - és a vas?
- iPhone topik
- Apple Watch
- Huawei Watch Fit 3 - zöldalma
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- CMF Buds Pro 2 - feltekerheted a hangerőt
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Magisk
- Honor 200 Pro - mobilportré
Új hozzászólás Aktív témák
-
martonx
veterán
válasz
bandi0000 #7797 üzenetére
Az általában nem baj, ha egy kód nagy. Az a baj, ha nincs jól szervezve, nem olvasható, nem átlátható. Szóval neked most nem azon kellene törnöd a fejed, hogy szar megoldásokkal hogy nyerjek pár sort, hanem hogy szervezd normális olvasható, átlátható formába. Pl. Bevezetni repository patternt, funkciókat más classokba kiszervezni stb...
-
bandi0000
nagyúr
válasz
Froclee #7795 üzenetére
köszi de nem pont ezekre gondoltam, valszeg nem létezik pont olyan és úgy ahogy akarom, csak el,ég hosszú a kód és próbálom rövidíteni
martonx: gondoltam, hogy hülyeséget kérdezek ,de más lehetőség igazából nem játszik erre, hogy megoldjam, vagyis ami igen annak nincs értelme megcsinálni, azért hogy pár sorral rövidebb legyen
-
bandi0000
nagyúr
Lehet olyat csinálni, hogy változó számú paramétert adna vissza ugyan az a metódus?
gondolok itt arra, hogy egy csomó sql lekérdezésem van minden fv ben, de persze nem ugyan az, és ugyan annyi, ezért olyasmire gondoltam, hogy 1 fv be kigyűjtöm a különbözőket, és valami feltétel szerint minden meghívásnál kiválasztja hogy mit és mennyit adjon vissza
-
togvau
senior tag
Van ez a konstruktor kód:
public TxtLogger(string file) : base(new FileStream(file, FileMode.Append))
{
this.file = file;
}És itt az kéne, hogy meghívott paramétert manipuláljam (bemeneti fájlnevet kicsit megváltoztatni, ÉS ez után legyen vele meghívva az ősosztály konstruktora. Ilyet hogy lehet?
-
bandi0000
nagyúr
válasz
lord.lakli #7790 üzenetére
mondjuk ez itt tényleg felesleges, még nem teljesen tiszta nekem sem, mi hogy fog működni
de igaz, viszont másik függvénynél pont hogy do-while kell majd, mert folyamatosan fut, és csinál dolgokat,választástól függően, amíg nem lesz nyomva egy esc -
lord.lakli
őstag
válasz
bandi0000 #7789 üzenetére
OpTime-ba miért van do-while-ban minden? Látom nagyon szereted a do-while-t
Ha nem ESC-et nyom, akkor return, ha ESC, akkor meg a do-while lép ki.
Ha ESC-re fejezze be, akkor felesleges az egész do-while, helyette a kiírás után fapadosan ennyi kell:
while (Console.ReadKey(true).Key != ConsoleKey.Escape) { } -
-
bandi0000
nagyúr
semmi gond, örülök ha segítenek
lényeg az, hogy úgy néz ki a program hogy:
do
itt csinálja a dolgokat
és van egyfor( itt van a kiíratás meg a színezés )
while(amíg nem erscape-et nyomok)
ez az egész do while fügvény, egy switch case szerkezetbe van, tehát ha a do-while ból kilép, akkor megint kiírja a fő menüt és stb
arra rá jöttem ,hogy ha a színezve kiíratom, aztán a kiíratás után vissza állítom a fekete háttért, és a fehér színt akkor jó, de elég hülyén néz ki hogy 2 sor színezés kiíratás és megint 2 sor színezés van, és minden egyes színezett kiíratásnál ennek így kéne kinézetni
bár lehet később megpróbálom beszúrni a kódot, de az egész kód 200 sor kb
-
Keem1
veterán
válasz
bandi0000 #7785 üzenetére
Ezt nem értem igazán
"if, hogy ha escepe akkor csinálja, különben csináljon mást, csak ez a más a semmi kéne hogy legyen"
Mondjuk elhagyod az else ágat?Pl (nem ellenőrizve):
if (Console.ReadKey(true).Key == ConsoleKey.Escape)
Ha félreértettem a célt, akkor elnézést, nem kotnyeleskedni akartam, csak így elsőre nem áll össze a kérdésed.
-
bandi0000
nagyúr
milyen módon tudom azt elérni, hogy ne csináljon semmit a program?
mármint, van egy void függvényem, és figyeli a gomb leütéseket, de nekem csak az escape-re kellene hogy csináljon valamit, a többire ne, nyilván ez megoldható lenne egy if, hogy ha escepe akkor csinálja, különben csináljon mást, csak ez a más a semmi kéne hogy legyen, erre tudtok valami jó ötletet?
Én mg egy olyan gondom is lenne, hogy ugyan ebbe a fv-ben, kiíratásnál használom a háttér/betű színezést, és ahogy escapet nyomok, vissza tér az előző menübe, ahol szintén írok ki, de valahogy ez a színezés megmarad, és teljesen elrontja az első menüt, tele raktam már console.Clear()-el, de nem segített
kódot ha szükséges tudok bemásolni, de elég hosszú
-
Ivy.4.Ever
őstag
válasz
T0mBd1gg3R #7783 üzenetére
Nekem úgy tűnik hogy bármelyik kezdő könyvből megtanulod ugyanezeket. Az internet pedig tele van feladatokkal ha csak ez a baj. Epamnál is este tartanak órákat ha erre gondolsz.
Ha a falig akarsz elmenni: https://www.training360.com/microsoft/developer/programming-in-c-sharp-(20483)
Régi a leírás de azt ígéri hogy a hivatalos vizsgára készít fel. -
válasz
Ivy.4.Ever #7782 üzenetére
A debreceni messze van, 8x3 óra nem valami acélos ezzel szemben amire én most járok és belinkeltem az milyen?
Az epam meg úgy néz ki, amire 18 évesen munka meg egyetem helyett ülnék be, hangsúlyozom, van állásom, az abból befolyó pénz pedig nélkülözhetetlen. Bár a pontos tematikát, óraszámot nem látom, lehet tévedek. -
Ivy.4.Ever
őstag
válasz
T0mBd1gg3R #7781 üzenetére
Szoktak indítani cégek gyorstalpalókat diákoknak de nem hajtanak el tapasztaltakat sem. Mint például ez volt (és várhatóan lesz még):
https://www.inf.unideb.hu/hu/hirek/dyntell-gyakornoki-programVagy ami kifejezetten neked való lenne:
https://www.epam.com/careers/hungary/epam-academyVagy a Virgo Systems is megér egy misét de ők úgy tudom nem alkalmaznak .Net technológiát.
-
Sziasztok!
Egy ilyen képzésen veszek most részt, C, embedded C, C++, Perl előképzettséggel, érdeklődnék, mi lenne a dolog menete utána?
Arra gondoltam, bedolgoznék valahova, akár több helyre otthonról, eleinte pusztán tanulási célból, aztán szép fokozatosan előre. A főállásom sem rossz, csak jó lenne több lábon állni, de hosszú távon semmi sem elképzelhetetlen.
Az a baj magamtól nem tudok kitalálni feladatokat gyakorlásképp, ezért lenne jó egy olyan cég, ahol kapnék valós feladatokat. Van ilyen? -
togvau
senior tag
válasz
sztanozs #7779 üzenetére
Ez sem nyert. Az nyert félig-meddig, hogy szétválasztottam a dolgokat, és a letöltés a soros terv szerint megy
Míg a kicsomagolás, vízjelezés parallel foreachben. Most megpróbálom valami taskban kicsomagolni, hogy minden egyes fáljt amit letöltött rögtön kezdjen kicsomagolni, ne csak akkor amikor már minden letöltődött.
De egyszerű volt ez java-ban, hogy egyszerűen csak bedobtam a threadpoolba... -
togvau
senior tag
Na kipróbáltam a Httpclientesítést .Result-os rövidre zárással. Ugyan az a jelenség mint a webclientnél... csak most már "System.Net.WebException: The request was aborted: The request was canceled."
-
martonx
veterán
Pont ez a lényeg. Ha valami async, akkor az adjon vissza Task-ot. Viszont bármikor odabiggyeszteheted a .Result-ot az async metódusod meghívásának a végére, és máris normál változót fogsz visszakapni, mert látom ez a mániád.
Azaz pl. MyMethodAsync()-et kétféleképpen tudod használni:
1. szép async módon:
var a = await MyMethodAsync();2. csúnyán direktben syncesítve vállalva az esetleg háttérbeli async problémákat, ha egyébként minden más metódusod async fut:
var a = MyMethodAsync().Result;Azaz ha mindenképpen "szép" változó típust akarsz visszakapni a .Result-al bárhol rövidre tudod zárni az asyncosítást.
-
togvau
senior tag
válasz
Froclee #7773 üzenetére
kb 3 viszont mert a C#-nál nem lehet normális változót visszahozni több szálon, ezért pontosan ugyanarra a feladatra 2 csak kicsiben különböző függvény kell? (egy normális streamet visszaadó, és egy kötelezően task<streamet> visszaadó a párhuzamosított részhez)
A GUI függvényeiig elvitt asyncolgatásnál nem fogja azt is kérni, hogy a gui osztály is legyen async, meg a wpf-et is írjam át asynccé? -
Keem1
veterán
Srácok, ötletre lenne szükségem.
Adott egy desktop win app, ahol futásidőben x db képet kéne megjelenítenem, a képek száma nem limitált, 0 és végtelen között bármi lehet.A háttere a dolognak:
A program egy webes json adatot kap (System.Net.WebClient), amiben van egy tömb pár url címmel (thumbnail, normál) és caption-nel.
A cél, hogy a kapott thumbnaileket megjelenítsem, ráírva a caption-t és kattintásra böngészőben megnyíljon (normál kép).A json letöltése, feldolgozása pipa, lesz egy struct tömb végeredményben (caption és az url-ek). A kattintásra böngészőnyitás szintén megoldott.
A thumbnaileket kéne valahogy megjeleníteni, de úgy, hogy tudjam, hogy melyik melyik.Én így gondoltam: felteszek egy panelt, és valahogy foreach-csel rádobálom a pictureboxokat. Ez így működhet? Jelenleg tervezési fázis van, még egy karakternyi forráskódot se gépeltem be. Ha valakinek van jobb ötlete, ne tartsa vissza. Ha maradna a fenti, hogy tudom megkülönböztetni, hogy melyik picturebox melyik elem a struct tömbben? Fontos lenne, mert az adatokat (kattintást is) SQLite adatbázisban tárolnám.
-
togvau
senior tag
válasz
Froclee #7766 üzenetére
wpf
meló, egy java-ban írt telepítőt akarok átírni c#-ra, mivel az m$ sikeres a java FUD-ban.
Letölt aes128+gzipelt adatfájlt, néz stimmelő felhasználónevet jelszót benne (amit wpf felületen kell megadni), és azonosítókkal tér vissza, majd az adatfájlban található url-ről hash listát letölt, és csekkolja a kijelölt mappában hogy stimmelnek-e a listában lévők a lemezen lévőkkel, ha nem akkor bekerülnek a fájlok a letöltendő listába, és a listán lévő fájlokat letölti (1 fájl/zip szintén kódolva), kicsomagolja, eközben vízjelet helyez el benne.
És ennyi.
Java-ban viszonylag sima ügy volt. Itt is végül is működik, csak a több szálú letöltés/kicsomagolás nem működik rendesen. És ha asyncet használok egy metódusban, akkor az azt meghívónak is asyncnak kell lennie, és az azt meghívónak is, és így tovább... -
togvau
senior tag
válasz
martonx #7764 üzenetére
És mit csináljak ezekkel a taskokkal? Hogy lehet a Task<Stream>-et sima streammé vagy bármilyen más normális változóvá alakítani, úgy hogy normális visszatérési értéke legyen a függvénynek, és csak async taskok a legfelsőbb szintig? (azért fura, hogy java-ban egy szimpla url.openStream()-al el volt intézve az egész, még párhuzamosítva is).
-
togvau
senior tag
válasz
martonx #7760 üzenetére
Ha nem csinálok mindig újat, csak 1 darab van, akkor: "WebClient does not support concurrent I/O operations"
Másrészt ott nem csak letöltés van mint látható, hanem kicsomagolás, lemezre írás, fájlokban pár byte cseréje. Ezért van párhuzamosítva, de a letöltésnek is néha jót tesz, gondolj csak a több szálon letöltést tudó letöltőprogramokra.
-
martonx
veterán
Nem tartom jó jelnek, hogy a static metódusodban mindig újból csinálsz egy webclient-et. Ez lehet, hogy egy szálon nem okoz gondot, több szálon viszont simán lehet, hogy összeakad valami valahol..
A helyedben a webclient-et egy példányban hoznám létre, és azt használnám újra és újra.Másrészt webről fileok letöltésénél a szűk keresztmetszet úgyis a sávszélesség, nem pedig a processzor kihasználtság, szóval szerintem ez az a tipikus helyzet, ahol felesleges párhuzamosítással felesleges komplexitást hozol be a rendszerbe, nulla hozzáadott értékkel.
Majd amikor a fileokat parsolni akarod, vagy mittudomén, ott lesz értelme a párhuzamosításnak, de itt most éppen nincs értelme. -
togvau
senior tag
-
togvau
senior tag
Ha várok 1 percet, akkor dob egy webexception "The operation has timed out"-ot a
private static Stream ConvertToStream(string fileUrl)
{
try
{
if (DEBUG) Console.WriteLine("ConvertToStream: "+fileUrl);
return new WebClient().OpenRead(fileUrl);
}
catch (Exception ex) {
throw ex;
}
}
És így kiderül melyik fájlnál akad el, de a probléma az, hogy a dobott linket böngészőbe írva, simán letöltődik a fájl, és pont ugyanonnan hasonló fájlok (még nagyobbak) letöltése is simán megy a C# programból is. Gyak 21 fájlt kéne letöltenie, és a 19.-nél akad el. Ha nincs párhuzamosság, akkor végigmegy. -
togvau
senior tag
válasz
sztanozs #7755 üzenetére
Parallel.ForEach(alista, paraoptions, file =>
{
try
{
if (DEBUG) System.Console.WriteLine("file: " + file[0]);
string filee = downloadZip(file[0]);
UnzipFromFile(filee,destination,file[1]);
File.Delete(filee);
}
catch (Exception ex)
{
if (DEBUG) System.Console.WriteLine(file[0]+" "+file[1]+" Stack:"+ex.StackTrace);
Environment.Exit(0);
return;
}
}); -
sztanozs
veterán
[link] - egy darab pipát kell dobni az elején, ha mindent szeretnél elkapni. És amúhy miért jó, ha kidumpolja az exception-t és leáll? Nem értelmesebb elkapni a kivételt úgy, hogy meg tudd nézni a tényleges kontextust, le tudd csekkolni az összes változót, példányosított osztályt, stb???
Erre a Parallel.ForEach-re dobhatnál egy példát. Lehet, hogy csak a változókezeléssel van gond.
-
togvau
senior tag
válasz
sztanozs #7747 üzenetére
Van bizony! Sőt az a kezeletlen exceptionöket stacktrace-el amúgy is kidobja az outputra alapon, nem kell mindent try catchelni azért is hogy kíírja, vagy nem kell pipálgatni hogy mivel kapcsolatos exceptionoket dobjon
#7748 Az tökjó, ha már megvan hogy kb hol a hiba... akkor
De ez már régi. Az új az, hogy egy Parallel.ForEach ciklus érdekesen viselkedik. Ha MaxDegreeOfParallelism = 1 akkor minden jó. Ha >1 akkor is megcsinál mindent, de soha nem hagyja el a blokkot, egyszerűen megáll, és így nincs továbblépés, se exception, semmi.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen légkondit a lakásba?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Telekom mobilszolgáltatások
- Goddess of Victory: Nikke
- ThinkPad (NEM IdeaPad)
- LG LCD és LED TV-k
- Motorola Edge 60 és Edge 60 Pro - és a vas?
- Nagyon érzékeny lett a játékok archiválására a Nintendo
- Windows 7
- Autóhifi
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 4060Ti 8GB GAMER PC termékbeszámítással
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060Ti 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 500GB SSD RX 6700XT 12GB Cooler Master CMP 520L 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest