Új hozzászólás Aktív témák
-
Karma
félisten
válasz
Flowtation #7342 üzenetére
Állj. Gondold végig, mivel próbálkozol. A Parse függvények mindig stringből csinálnak számot/más típust, neked viszont a másik irányra van szükséged, amikor a Label szövegét akarod beállítani.
-
Karma
félisten
válasz
lord.lakli #7254 üzenetére
Pontosan ezt akartam kihozni belőle. Sőt megkockáztatom, hogy ha a kiírást is Streamen keresztül oldja meg, akkor nem is kell a négy fájlt felolvasni a memóriába teljes hosszában, előre.
-
Karma
félisten
válasz
sirszevenap #7150 üzenetére
Magyar esetén semmi, bármelyiket választhatod, és elég az egyik.
-
Karma
félisten
válasz
sirszevenap #7146 üzenetére
Elképzelhető, hogy a projektedben bejelölted a "Hungarian" és a "Hungarian (Hungary)" nyelveket is. (Kódolva hu és hu_HU).
-
Karma
félisten
válasz
sirszevenap #7120 üzenetére
Én nem tudok arról, hogy lehetséges lenne a Firebase Analytics használata, viszont az előző verzióhoz (universal analytics) van SDK.
-
Karma
félisten
válasz
sirszevenap #7100 üzenetére
Mármint arra a WP7/WP8 libraryre gondolsz, ami az említett platformokon meghatározó jelentőségű volt, de kihalásuknak hála egyébként 2013 óta nem frissítettek egyáltalán?
-
Karma
félisten
válasz
tototos #7056 üzenetére
Azért ez messze nem gyerekjáték, mindenképpen kell egy Windows driver ahhoz, hogy hardvereszközt emulálhass. Viszont pont erre a feladatra találtam egy még élő megoldást: vJoystick, ami a szöveg szerint tartalmazza az aláírt drivert, és C# SDK-n keresztül is lehet hajtani.
-
Karma
félisten
Utolsó, mint valamilyen szempont szerint minimum értékkel rendelkező, vagy mint sorrendben utolsó?
Természetesen mindkettő megoldható kézzel-lábbal is, bár C#-ban még a programozási "tételekhez" se kell nyúlni egyik megoldásához se, ugyanis az adatszerkezet el tudja végezni a te közbenjárásod nélkül is. (A LINQ sokat segít ebben.)
-
Karma
félisten
válasz
alratar #6985 üzenetére
Mindent meg lehet oldani, de neked ettől függetlenül objektumok listájával kellene dolgoznod.
A "minden mezőnek csinálok egy külön listát" témát, amit először írtál, nagyon gyorsan felejtsd el. Helyette inkább meditálj azon, hogy a két adat szorosan kapcsolódik egymáshoz (lévén egy entitás két tulajdonsága), ezért elválaszthatatlan egységet alkotnak - és ennek a kódban is meg kell jelennie. Például egy class formájában (legyen mondjuk Person a példa kedvéért).
Te ilyen Personöket kérsz be, teszed el egy darab listába, és ezt akarod rendezni utána. A kód is tegye ugyanezt.
-
Karma
félisten
-
Karma
félisten
válasz
Jester01 #6934 üzenetére
Azért azt is vedd hozzá, hogy az eredeti kérdés számpárokat akart Tárolni. Arra egy kettes Tuple vagy a KeyValuePair bőven elég, nem gondolom hogy annyira indokolt lenne az új osztály bevezetése, ha logika nem tartozik hozzá.
Egy hetes Tuple már tényleg téboly viszont.
-
Karma
félisten
Hát ezt inkább ne csinálja, van erre beépített megoldás is.
-
Karma
félisten
válasz
Neil Watts #6845 üzenetére
Az ISO-8859-8-at nem ismerem, de az biztos, hogy ha nem is a legrövidebb, ez a helyes megoldása a feladatnak. Nem csak magyar karakterek léteznek a világban.
Javaban annyival könnyebb a helyzet, hogy regexszel ki lehet szűrni a non-spacing markokat, így nem kell karakterenként bejárni.
-
Karma
félisten
Most hogy mondod, van egy hiba az eredeti bemásolt kódodban is: ha eltérő hosszúságú a két szám, akkor indexelési hiba lesz a vége. A PadLeft metódussal "fel tudod tölteni" nullákkal a rövidebbet, hogy egyenlő hosszúak legyenek.
Egyébként javaslom a debugger használatát, amikor az exception történik és felrobban a program, meg tudod nézni, mik voltak az egyes változókban.
-
Karma
félisten
A carry összeadásnál a túlcsordulást jelenti. A program az általános iskolai összeadást valósítja meg, tehát a legkisebb helyiértéktől kezdve, egyesével összeadja a számjegyeket, és ha az összeg nagyobb 9-nél, a következő helyiérték plusz eggyel nő. Ezt tárolja a carry változóban.
-
Karma
félisten
-
Karma
félisten
válasz
kingabo #6704 üzenetére
Nekem elég egyértelműen átjött, hogy erről van szó, és semmi köze az ASP.NET-hez. Én nem ismerem ezt az antik megoldást, de se a Google, se az SO nem volt barátom a segítésben.
-
Karma
félisten
A feltételezésed nettó tárgyi tévedés, semmi ilyen fekete mágia nem történik. Valószínűleg elcsúsztak az indexek a feltételben, és a sornak nincs ötödik eleme.
Kérlek kezdd el végre használni a Visual Studio debugger funkcióját, tégy egy breakpointot a problémás sorra, és meg tudod nézni hogy melyik változóban milyen értékek vannak.
-
Karma
félisten
Akkor tehát az volt a hiba, amire gondoltam. Ha más változónevet használsz a foreachben, akkor nem lesz ütközés, és hiba se.
Ezt a versenyt nem ismerem, de mivel sehol se írják konkrétan, szerintem a szöveges felületet is el kellene fogadniuk. Azért megkérdeznék róla egy másik versenyzőt, egy szervezőt vagy neadjisten egy infótanárt.
-
-
Karma
félisten
Húha. A belinkelt kódodban egyetlen Dolgozo példányt hozol létre, amit valamiért "dolgozok" nevű változóba raksz, és ennek tragikus következményei vannak a folytatásra nézve. Ha debuggerrel megnéznéd a listádat, akkor azt látnád, hogy bár annyi eleme van a listának, mint ahány sorod volt a szövegfájlban, mindegyik elem ugyanaz (a legutolsó rekord a fájlban).
Minden sorhoz új Dolgozo példányra van szükséged, lásd itt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace dolgozok
{
struct Dolgozo
{
public int id;
public string nev;
public string pw;
public bool vezeto;
}
class Program
{
static void Main(string[] args)
{
List<Dolgozo> lista = new List<Dolgozo>();
string line;
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while ((line=sr.ReadLine())!=null)
{
var sor = line.Split(':');
Dolgozo dolgozo = new Dolgozo();
dolgozo.id = Convert.ToInt32(sor[0]);
dolgozo.nev = sor[1];
dolgozo.pw = sor[2];
dolgozo.vezeto = Convert.ToInt32(sor[3]) == 0;
lista.Add(dolgozo);
}
}
Console.ReadKey();
}
}
}A nevezéktanba és a kisbetű-nagybetű dolgokba nem akartam belenyúlni, de lenne mit javítani azon a fronton. És egyébként az elején létrehozott string[4]-re sincs semmi szükség, mert a Split mindig újat hoz létre.
---
Az ide másolt kódban el tudnád mondani, mégis milyen indíttatásból csináltál hatos ciklusokat; és miért kéred be ennyiszer a nevet és a jelszót? A sorrend kicsit rossz, de ha a fejedben helyrerakod a lépések sorozatát, szerintem gyorsan rájössz a megoldásra. For ciklus nem lesz benne, és indexekkel se kell játszadoznod – a kérdés ugyanis az, hogy "van-e olyan Dolgozo a lista-ban, akinek a neve és a jelszava egyezik a megadott értékekkel?".
Athlon64+: Én úgy látom, az OP kérdés minden része le lett fedve.
De majd szól, ha valami kimaradt. -
Karma
félisten
válasz
Peter Kiss #6674 üzenetére
Nem lesz végtelen ciklus, mert amikor a ReadLine nullt ad vissza – és a Split nem hívódik meg – az egész kifejezés értéke null lesz, a ciklus meg megszakad.
Bár tény, nem próbáltam ki, mert telefonon írtam, de nem hiszem, hogy ebben az esetben máshogy működne a ?. operátor, mint általában.
rgeorge: Írtam is.
-
Karma
félisten
"ezzel a módszerrel mindenképp egyből be kell töltenem egy másik stringbe, és a stringet splitelem?"
Itt azért fékezzünk egy kicsit. Azzal, hogy egy lokális változót vezetsz be a stringnek, még nem "töltesz" semmit sehová, és véletlenül sem lesz kettő stringed. Egyetlen példány létezik belőle, amit a ReadLine visszaadott, függetlenül attól, hogy hány néven nevezed.
A vlevi és martonx által leírt megoldás a helyes alapvetően.
Ha mindenképp meg akarnád spórolni azt a string változót, akkor a C# 6-os null-safe invocationnel meg lehet oldani tömörebben, de szerintem ennek nincs előnye ebben az esetben, viszont nehezebben olvasható.
while ((var sor = sr.ReadLine()?.Split(':')) != null)
{
// ...valami a sorral (String[])...
} -
Karma
félisten
válasz
sirszevenap #6653 üzenetére
Ez nem elképzelés eddig, csak egy kocsmai ötlet, és egyébként egy nem túl acélos megoldás felé mutat.
Ha csak annyi a védelem, hogy "úgy eldugom a registryben hogy ne találja meg egy átlagfelhasználó", akkor akár egy fájlt is elrakhatsz az Application Data alatt, ott se fogja keresni. Az elég könnyen lenyomozható (ProcMonnal), hogy milyen kulcsot ellenőriz az alkalmazás indulás során.
Én nem szórakoznék házi megoldással, se nem akarnám feltalálni a kereket. Ha olyan szoftverről van szó, aminél tényleg megéri egy ilyen time trial változat elkészítése, mert majd nagy pénzek jönnek be utána, inkább azt javaslom, hogy fizess be egy kész licensing szolgáltatásra.
-
Karma
félisten
válasz
daneel92 #6640 üzenetére
Ne akard tömbösen, mert úgy a 10000000000000. elemnél már gondok lesznek, pedig nem szükségszerű.
A hiba oka egyébként egyszerű: az i <= Fibonacci.Length ciklusfeltétel hibás, egyenlő nem lehet, hiszen a tömböt 0..Length-1-ig indexeli a nyelv.
És ha már itt vagyunk, kérlek legközelebb használd a Programkód formázást!
-
Karma
félisten
A baj nagyon egyszerű, sajnos a fordító hibaüzenete nem sokat segít elsőre - bár igaza van, olyan karakter nincs, hogy \s.
'og:image"\s*content="([^"]+)"' <-- ez nem valid string literál C#-ban. JavaScriptben meg gondolom PHP-ban elmegy, de itt kötelező idézőjelekkel körbevenni. Aposztrófokkal char literált kapsz. Ha nem lenne ott a \s, akkor már egyértelműbb lenne a hibaüzenet.
Helyesen így nézne ki, amit le akartál írni:
@"og:image""\s*content=""([^""]+)"""Mint láthatod, a belső idézőjeleket meg kellett duplázni. A @ prefix pedig azért kell, hogy a backslasheket ne escape karakterként kezelje, hanem közvetlenül tegye bele a stringbe. (@ nélkül azokat is meg kéne duplázni.)
-
Karma
félisten
válasz
tototos #6600 üzenetére
Ott valamit nagyon elnézel, az input változó biztosan nem egy szöveget tartalmaz. Mondjuk ha megpróbálod kiíratni, akkor tényleg ezt kaphatod.
Az a helyzet, hogy a LINQ query szintaxis, hasonlóan a legtöbb LINQ metódushoz, nem listát ad vissza, hanem egy IEnumerable-t; leegyszerűsítve egy "képletet", hogy hogy lehet végrehajtani az általad felsorolt műveleteket. Nem is fut végig a stringlistádon ekkor még.
Ha a visszakapott IEnumerable-ön hívsz egy ToList()-et, végigfut a ciklus és megkapod a tényleges listát.
var lines = File.ReadLines(fileName);
var input = (from line in lines
where (!line.Contains("dblink"))
select line).ToList();Így már input egy List<String> lesz, benne a neked kellő sorokkal.
A metódus formában ez így nézne ki, igazából szerintem egy ilyen egyszerű szűrésnél sokkal jobban olvasható:
var lines = File.ReadLines(fileName)
.Where(line => !line.Contains("dblink"))
.ToList();---
A ToListen kívül a ToArray, ToDictionary, ToLookup metódusok hívásakor, továbbá foreach ciklussal vagy XAML bindinggal is kiértékelődik a képlet.
Nagyon oda kell figyelni arra, hogy ahány ilyet hívsz, annyiszor újrakezdi a teljes számolást! Ezért miután a képleted teljes, célszerű a ToListtel materializálni a listát, és így megspórolni a felesleges újraszámolásokat.
---
Csendben kicseréltem a ReadAllLines hívást ReadLinesra. Ennek a verziónak az a hatalmas előnye, hogy nem olvassa fel azonnal a teljes fájlt a memóriába, hanem soronként dolgozza fel, ahogy materializálódik az eredmény, memóriát spórolva. Jobban is passzol a LINQ filozófiájához.
-
Karma
félisten
Ha a kommunikáció mindkét oldalát te írod vagy tudod befolyásolni, szerintem megér egy nézést az AltarNet3 lib. Pofonegyszerű használni, csak arra kell odafigyelni, hogy az üzeneteket úgy küldi és fogadja, hogy először 32 biten átküldi az üzenet teljes hosszát, aztán jön a tényleges tartalom.
-
Karma
félisten
A kerék feltalálása helyett a legjobban úgy lehet megoldani, hogy fogsz egy kész CSV libet. Ha a szóközt választod szeparátornak, pont így fog viselkedni szerintem.
-
Karma
félisten
válasz
h1ght3chzor #6551 üzenetére
Ezt úgy szokták hívni, hogy "autocomplete textbox", vagy "typeahead". Nem mondtad, hogy milyen platformról van szó mondjuk, az segíthet a példaírásban meg a jobb keresésben is.
Úgy általánosságban sokkal jobb, ha fel se merül a teljes DB felolvasása, helyette okosan queryzel a már megadott első pár karakterrel. (Tipikusan háromnál szoktak beindulni az ilyenek.)
-
Karma
félisten
Hogyne lenne? DispatcherTimernek hívják.
Az eltolást szerintem egy TranslateTransform segítségével tudod a legjobban megoldani, az Y értékét kell növelned vagy számítanod.Sajnos nem tudok jó anyagról
Nekem az egyetemi jegyzetek voltak a kezdőlöket, aztán WP-s gyakorlattal állt össze a kép. Persze a WPF sokkal több, mint a Silverlight, de az alapok azonosak.
-
Karma
félisten
-
Karma
félisten
Én azt vettem észre, hogy azok az indiai programozók, akik tényleg jók, nem maradnak az országban bérfejlesztősködni - ergo ilyen vonatkozásban nem is találkozni a munkájukkal.
Egyébként a magyar bérmunkaerővel is pontosan ugyanaz a közhelyt tapasztalom: olcsó húsnak híg a leve. De, csak hogy nehéz legyen az élet, ha valaki sokat kér, az se jelent semmit...
-
Karma
félisten
válasz
luzer0901 #6325 üzenetére
Alapvetően nincs benne nagy kanyar. A felhasználó megadja a nevét és a jelszópróbálkozását, az alkalmazásod pedig 1) megkeresi azt a rekordot, ami a felhasználónévhez tartozik, 2) leellenőrzi, hogy a próbajelszó és a tárolt jelszó egyezik-e. Ha volt hozzá tartozó rekord és a két jelszó megegyezik, akkor a belépés sikeres; ha valamelyik nem igaz, akkor pedig nem.
A jelszó tárolási stratégia, ezáltal az egyezés megállapítása egy olyan dolog, ami el tud ágazni sokfelé.
Például adja magát, hogy a jelszót simán egy oszlopban tárold a név mellett, szövegesen, és így string-összehasonlítással meg tudod állapítani hogy jó-e, de ezt az utat kerüld el! Helyette inkább egy salted hash stratégiát javasolnék.Vagy nem ilyen iránymutatásra gondoltál?
-
Karma
félisten
válasz
Froclee #6304 üzenetére
Semmi köze hozzá tényleg. Viszont az lehet a baj, hogy a MySQL alapértelmezetten csak localhostról érhető el. Ez két-három helyen igényel módosítást:
1) A my.cnf fájljában a bind-address sort írd át 0.0.0.0-ra; vagy ha több IP-d van és van közöttük egy fix, amelyiken jön be majd a kapcsolat, azt is megadhatod.
2) A felhasználók localhostra korlátozottak, ezért nem fog semmit se engedni a szerver. A mysql.user táblában a host oszlopot állítsd át %-ra, ha bárhonnan engedélyeznéd a kapcsolatot. Itt ki van fejtve részletesen.
3) Sémaszinten is lehet, hogy le van korlátozva a hívó hostja. Hasonló %-os megoldás kell hozzá.Az utóbbi kettőt a !egegyszerűbb MySQL Workbench-csel megcsinálni.
martonx:
Modern webes környezetben is össze kell kötni a DB-t és az appszervert -
Karma
félisten
válasz
Peter Kiss #6195 üzenetére
Ez szerintem még jobb ötlet! 10 Azure Web Site-ot egyébként is kapsz ingyen, ha van fiókod. Nem hiszem, hogy a napi kvótákat kiakasztanák egy szakdolgozat bírálata során.
(#6194) ^Boss: Most nem alkalmas, de majd ránézek és mondok valami okosat, ha közben nem döntesz más irány mellett.
-
Karma
félisten
-
Karma
félisten
Nézd meg ezt az MSDN oldalt, ezzel az indított process standard outputját streamként tudod kezelni. Az aszinkron olvasás (BeginOutputReadLine) jó lehet ilyesmihez.
-
Karma
félisten
válasz
#34322688 #6121 üzenetére
Tetszőleges szöveget a Console.WriteLine metódussal tudsz, egy sort beolvasni pedig a Console.ReadLine-nal. A WriteLine-nak van egy olyan változata, aminek megadod a kiírás formáját, a "vázat", és a paramétereket, amikkel kitölti a lyukakat. A név például biztosan egy ilyen paraméter.
Ezeket kell a helyes sorrendbe tenned.
-
Karma
félisten
válasz
#34322688 #6091 üzenetére
Tényleg nincs olyan változód, hogy eletkor. Mindenhol máshogy egy nagy "E"-betűvel jelölted (ami mellesleg nagyon ocsmány gyakorlat, inkább legyen mindenhol "eletkor", vagy "age"). Jelöld egységesen, és jó lesz.
Valamint ha legközelebb kódot illesztesz be, használd a Programkód gombot!
-
Karma
félisten
A változók fogalmának fuss neki még egyszer. Futásidőben ez nem fog így működni - Jester01-nél a pont, hogy listára vagy dictionaryre lesz szükséged. A kettő közötti választás feladatfüggő.
Kiegészíteném azzal, hogy a string[]-ökkel való zsonglőrködés helyett sokkal jobban jársz, ha csinálsz egy osztályt a felhasználóknak, és minden későbbi lépésnél ezt használod alapként. A stringfétis, ahogy egy néhai kollégám hívta, veszélyes gyakorlat. Inkább ne hagyd magadban kialakulni.
Szóval a következő lépéseket javaslom egy nagyon naiv megoldáshoz(*):
1) Csinálj egy User osztályt négy adattaggal.
2) Írj egy olyan metódust valahova, ami egy beolvasott sorból User példányt csinál (ezen belülre rakhatod a Split hívást és az adattagok feltöltését).
3) Írj egy olyan metódust, ami paraméterként kap egy StreamReadert, while ciklusban (amíg van mit olvasni), a ReadLine metódussal felolvas egy sort, az előzőleg megírt metódussal Usert gyárt belőle, és berakja egy List<User>-be. A végén visszaadja ezt a listát.
4) Ezt a metódust meghívod a fájllal, és máris előállt minden felhasználó adata.(*): Nem tudom, hogy folytatódik a feladat. Ha csak a belépéshez kell a fájl tartalma, akkor jobban megérheti egy olyan konstrukció, ami nem nyalja fel memóriába a listát egyszerre, hanem mindig csak az aktuális, egy sornyi Usert ellenőrzi, és ha illeszkedik a név/jelszó párra, visszaadja.
-
Karma
félisten
válasz
zuzu000 #6056 üzenetére
"Char tömbben hogy keresem meg az első nem \0 elem indexét?
Tehát ami valamilyen karaktert jelöl, nem üres."Legegyszerűbben egy for ciklussal.
Ha általánosabban meg akarod oldani, akkor célszerű írni egy extension methodot a feladathoz. Álljon itt egy példa StackOverflowról:
public static class EnumerableExtension
{
public static int FirstIndexMatch<TItem>(this IEnumerable<TItem> items, Func<TItem,bool> matchCondition)
{
var index = 0;
foreach (var item in items)
{
if(matchCondition.Invoke(item))
{
return index;
}
index++;
}
return -1;
}
}Ezzel a metódussal a feladatod így néz ki:
var array = new [] { '\0', '\0', '\0', '4' };
Console.WriteLine(array.FirstIndexMatch(ch => ch != '\0'));"Illetve a \0 space-t jelöl?"
Nem, dehogy is. Az Unicode NULL karaktert jelöli, aminek nyolc bites testvére C-ben ugyebár a string végét jelölte, viszont C#-ban nincs ilyen jelentősége, mert a char tömb tudja magáról a saját hosszát.
"Vagyis ha ezt beillesztem egy string-be, akkor ott szóköz lesz?"
Nem. Bekerül a stringbe, foglalja a helyet, de ha kiírod, nem jelenik meg semmi.
Szerintem nem szabadna, de most csak .NET fiddle-ön tudtam kipróbálni, ott tényleg nem jelent meg semmi. Lehet, hogy konzolon máshogy megy.Az biztos, hogy a szóköz helyes jelölése: ' '
-
Karma
félisten
A legegyszerűbb és legbizonytalanabb az, ha \t tab karakterekkel választod el az oszlopokat (pl. string.Join metódussal összefűzve), aztán kiírod soronként.
Ha ismered előre az oszlopokat, akkor a string.Formatnak oszloponként meg tudod adni, hogy hány karakterre paddelje ki az értéket, és balra vagy jobbra igazítva szeretnéd. {0, X} vagy {0, -X}
Ha nem ismered őket, a string.PadLeft és a .PadRight segíthet.
-
Karma
félisten
válasz
rgeorge #6007 üzenetére
A hivatalos oldalt nézted már?
-
Karma
félisten
Akkor jó, hogy ha nem számít az üzenet, csak a periodikus gerjesztés.
Nekem például van egy projektem, amiben a munkavégzést egy worker végzi (amit a WebJobs SDK-val írtam; nagyon jó lib a storage-hez!), és van pár olyan feladata, amiknek X-Y percenként le kell futnia.
Most 12 queue van benne a különböző műveletekhez, néhány nézi az üzenet szövegét, a többségnek csak buta triggerként szolgál. Ezeket indítom schedulerrel, a többit belül pingpongozza.
-
Karma
félisten
válasz
leximester #5925 üzenetére
Ah, én úgy értettem, hogy két másodpercenként ismétlődve kell ez (például kamera képet frissítesz). Ha csak egyszer kell egy késleltetést bevinned a sztoriba, lényegesen egyszerűbb, ha aszinkronná teszed a metódust, és írsz egy ilyet:
private async Task SubmitMove(...)
{
// ... minden ami a kép megjelenítéséhez kell
await Task.Delay(2000);
// ... minden ami a kép levételéhez kell
} -
Karma
félisten
válasz
leximester #5923 üzenetére
A legegyszerűbb megoldás ott kezdődik, hogy elfelejted a UI szál altatását. Olyat nem szabad csinálni.
Helyette csinálj egy DispatcherTimert két másodperces intervallummal, és annak a Tick eseményére csináld meg a képfrissítést.
-
Karma
félisten
-
Karma
félisten
válasz
tomrRRR #5873 üzenetére
C-ben, vagy C#-ban? Ha az előbbi, akkor ebbe a topikba fáradj át kérlek.
-
Karma
félisten
válasz
MATEO6600 #5851 üzenetére
1) Ez nagyon helyzetfüggő, de az esetek többségében célszerű a propertyt használni tovább, akár osztályon belül is. Persze kérdés, milyen vudut kódoltál a setterbe, de például elég tipikus a PropertyChanged esemény gerjesztése, ami azért nem árt, ha mindig megtörténik.
2) Nem kötelező private-nak jelölni, mert a classok és structok adattagjai alapértelmezetten private-ek. Egy külső (azaz nem másik classon belüli beágyazott) class alapértelmezetten internal, de átírhatod publicra. A beágyazott dolgok private-ok alapból.
3) De egyébként a pattern nem attól lesz jól vagy rosszul implementálva, hogy propertyt vagy fieldet használsz. Ha egy osztály egy másik adattagjait sokszor, közvetlenül manipulálja, legyen szó az előbbi kettő bármelyikéről, ott valami bűzlik. -
Karma
félisten
válasz
MATEO6600 #5849 üzenetére
Ilyenkor nem használhatsz autopropertyt. Csinálnod kell egy tagváltozót, és azt használod a getterben és a setterben, mint azelőtt, hogy kitalálták ezt a rövidítést. A fordító is ezt teszi, csak azt elrejti előled.
private int _szam;
public int Szam
{
get { return _szam; }
set { _szam = value; HardcoreVoodooBlackMagic(value); }
} -
Karma
félisten
Windows Formsban például használhatsz egy ilyen megoldást a UI és egyéb szálakon keletkező, nem lekezelt hibák lecsapására.
WPF-ben van DispatcherUnhandledException.
Windows Phone-on az Appnak van egy kapcsolódó eseménye.
De azért jobb, ha inkább helyesen kezeled a kivételeket.
Ú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!
- Yettel topik
- Autós topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Elemlámpa, zseblámpa
- Delta Force (2024)
- Jövőre az Apple megérkezhet 2019-be
- Egy helyre gyűjti az eltérő áruházak játékait a Microsoft
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- BONTATLAN Új Iphone 16 PRO 128Gb - 1TB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Új Bontatlan Mac Studio M4 Max 2025 14cCPU /32cGPU / 36GB RAM / 512GB SSD - Azonnal Átvehető Deák.
- BONTATLAN Új Iphone 16e 128-512GB 1év APPLE garancia gyári független Deák AZONNAL Átvehető Deák térn
- ÚJ bontatlan S9 45mm Silver Stainless steel Cellular milanese fémszíj 199.900 azonnal átvehető Deák
- ÚJ kipróbálásra felbontott MacBook Pro 16 M4 Pro 14CPU/20GPU 24GB/512GB SSD Magyar billentyűzet Azon
- BESZÁMÍTÁS! MSI B450M R5 5500 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Chieftec 600W
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- BESZÁMÍTÁS! Intel Core i9 9900KF 8 mag 16 szál processzor garanciával hibátlan működéssel
- Xbox Game Pass Ultimate kedvező áron, egyenesen a Microsoft-tól! - AUTOMATA BOLT
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest