Globális változók c # blog Michael flonova
Ma megkérdezte egy érdekes kérdés - hogyan és hol tárolja a globális változók. A férfi létrehozásához használt Delphi egy külön modul, amely tárolja a globális változók és módszerek. Ez egy nagy probléma Delphi volt képes létrehozni globális változókat. Szabályai szerint OOP kell ilyen lehetőség, és a C # ez nem lehetséges!
1. Szükséges, hogy egy változó lehet bárhonnan elérhető? Ha nem, hozzon létre egy ingatlan bármelyik megfelelő osztályban.
2. Lehet értelmében a változó kifejezés minden osztályban? Ha igen, akkor megint létrejön egy tulajdon bármelyik megfelelő osztályban.
3. Tud kódolni logikai osztályokban vizuális felületet? Ha igen, akkor a legjobb, hogy távolítsa el a kódot, és írjuk újra, csak a tervezési kód, nem farag.
Ha gondolkodás „igen zadolbal csak mondja meg, hogyan, hogy egy globális változó vagy módszer”, ebben az esetben egyszerűen azt mondják:
Ezekben az esetekben a C # és más nyelveken valódi tárgyat a statikus változók és módszerek. Csak hozzon létre egy fájlt, amelyben el fog dobni az egész globális szemét:
Most bárhol a programban akkor nézze meg a változók és módszerek: GlobalTrash.MyGlobalTrash.MiGlobalVariable = 10;. De még egyszer szeretnék tanácsot létrehozni globális változók, mint utolsó lehetőség.
Elvileg nem lehet létrehozni egy külön osztály és a névtér, és használja a Program osztály, úgy, hogy már a program Program.cs fájlt.
Spider_NET
Ez azt, mint a C #. Miután az átmenetet a Delphi voltam rohadt furcsa, de aztán úgy érzem, ezt a funkciót. És a kód könnyebb fenntartani (mármint statikus), és valahogy az elme, szemben a Delphi.
Bár arra utal, hogy a régi verziót a delfin. A legújabb verzió, Delphi van az úgynevezett osztály módszerek / változók - ala statikus.
Mindegy, jól, hogy a Delphi folyamatosan fejlődik.
pszicho-coder
Egyszer írtam egy ügyfél számára a MySQL C ++. NET (perverzió természetesen), de ott kellett lennie valahol, hogy tárolja a beállításokat (jelszó, felhasználói név, port, adatbázis neve, stb.) Meg kellett tennem mint a globális változók, mert ablakok sok, lehetetlen volt tulajdonítani, amit az osztályban, és talán akkor (eszembe nem jutott).
Hogyan lehet ilyen esetekben?
Több namuchalsya adatátviteli között az öntőformák, ahol lehetséges volt, hogy közvetlenül az egyik formából a másikba, és ahol az csak a Globe (
Michael Flenov
Miért a kapcsolat beállításait szükség windows? Szükség van rá, csak egy esetben - a hozzáférési kódot az adatbázisba, hogy a tantermekben ablakok. Ez nagyon rossz. Meg kell különböztetni a helyzet.
Felejtsd Delphi, mint egy rémálom
Michael, miért annyira elutasító?
Függetlenül attól, hogy helyes volt mondani, hogy „elfelejti helytelen kódolási képességek Delphi, mint egy rossz álom.” A nagyon környezete Delphi még valami nem hibás.
Az objektum-orientált képességeit Delphi gyengébb, mint a C #?
Normális Delphi könyvek fekete-fehér nem ajánlott használni a globális változókat.
És semmi nem akadályozza meg a Delphi, valamint a például a C # pakolás minden globális változó egy osztályban, és elérheti őket a tulajdonságait.
Delphi teljesen objektum-orientált programozási nyelv. És semmi nem akadályozza meg kódolni a „fejlett” (100% -tno objektum-orientált).
pszicho-coder
Mmm. Meg kell kidobni a kódot az adatbázis eléréséhez külön osztályban? Akkor, akkor meg kell adatokat átvinni egy osztályt származtatható adatbázisunkban, az ablak osztály, és töltse ki az összes mezőt, hogy az adatok?
Michael Flenov
Delphi - nagyon jó nyelv. De minden programozó, aki áttért a Delphi C # meg kell elfelejteni szinte mindent, amit tett a Delphi.
Hasonlóképpen, mondom olyan programozó, aki mozog C # vagy Java Delphi - „biztos, hogy a C # és Java”. Ellenkező esetben nem lesz képes írni egy sikeres projekt.
Írás lehet igazán azonos, de ez nem mindig szükséges. Csak ezeken a nyelveken és könyvtárak más megközelítés. Úgy vélem, hogy nem kell írni, olyan nyelven és annak előnyeit. És ne próbálja meg végrehajtani a nyelvét előnyeit mások.
Michael Flenov
Várj egy külön feljegyzésben
Michael Flenov
Úgy döntöttem, mégis, hogy ne írjon egy megjegyzést.
Az eredmény lehet egy adathalmazt, és nem is lehet formájában tömbök, és nem a táblázatban.
Ismét a Delphi, akkor is csinálni, de senki nem, mert a VCL maga stílusában íródott a 70-xx év és példák vannak ellátva Delphi a stílus a '70 -es években.
pszicho-coder
2Mihail
Köszönöm. Meg kell gondolni, hogy alaposan). És egy programot kell újraírva, mert rögzíteni valamit, ami nincs értelme.
[Offtop] Csak azt vettem észre, hogy nem tudom rendesen kifejezni azt az elképzelést ((([/ offtop]
[QUOTE]
Delphi - nagyon jó nyelv. De minden programozó, aki áttért a Delphi C # meg kell elfelejteni szinte mindent, amit tett a Delphi.
Hasonlóképpen, mondom olyan programozó, aki mozog C # vagy Java Delphi - „biztos, hogy a C # és Java”. Ellenkező esetben nem lesz képes írni egy sikeres projekt.
Írás lehet igazán azonos, de ez nem mindig szükséges. Csak ezeken a nyelveken és könyvtárak más megközelítés. Úgy vélem, hogy nem kell írni, olyan nyelven és annak előnyeit. És ne próbálja meg végrehajtani a nyelvét előnyeit mások.
[/ QUOTE]
Helló Michael!
Kezdeni, szeretném kifejezni elismerésünket és tisztelem a könyveket. Nemrég tanultam programozni a második kiadás Delphi Bibliát. És ez segített, hogy a „quick start”. Ez volt az első papír könyv a programozás.
De én még szeretnék kifejezni egyet nem értését a tézisek, mint a „Ne feledje, hogyan tette Delphi.” Csak azért, mert ez csak a megközelítés sok különbség a Delphi és a sisharp nincs. Van különbség a koncepció, de ez a mi alkalmazás programozók nem nagyon érdekel.
Itt például voltam a projektek ne használjon rutinokat és változók kívül az osztályok, és még mozogni modul alkotnak globális például az osztály a DPR-fájlt.
Továbbá, események, generikus névtelen módszerek és attribútumok találkoztam a Delphi.
Olvasás MSDN C #, én szinte nem találkoznak egy forradalmian új - az alap már ismerős Delphi, kivéve azok a dolgok dotneta.
Mintegy különbségek arhitekure szabványos könyvtárak - igen, az RTL mag készül eljárási stílusban. Ennek fő oka - a teljesítményt.
De a fő előnye a Delphi VCL ugyanúgy megvalósításában a PFSZ megközelítés és lett a prototípusa Windows.Forms.
Megvan minden, hogy az a tény, hogy nem szükséges, hogy lógni címkék delfistov állítólag mindannyian használni globális változókat. Itt adják a szabadság és a programozó, aki úgy dönt, ezért választottam magamnak és az objektum-orientált megközelítés.
Miért tanulok C #? A válasz egyszerű: a gazdag standard könyvtár, WPF, ASP.NET és könnyebb munkát találni.
Üdvözlettel, Dmitry.
Michael Flenov
„Emlékezz, hogy sikerült a Delphi”, mert Delphi használható globális változók, de a C # egyszerűen nincs (lehet hiányzik valami).
C # és Delphi még mindig sok más. VCL nagyon hasonlít a Delphi, de ők csak néznek ki. Személy szerint ezt a nyelvet az többet jelent nekem, mint más hasonló.
Ők eredetileg voltak hasonlóak, legalábbis mert úgy tervezték, ugyanaz a személy.
Először sisharp sok pozaimstvoal Delphi, Delphi, és most kölcsönöz sisharpa.
Mivel a C ++ sokkal kisebb a hasonlóság, a szintaxis nem tekinthető, mert Nem számít.
Valaki nem emlékszem, aki azt mondta, hogy sisharp 75% és 25% Jawas Delphi. Most körülbelül Delphi lehet mondani, hogy van 50% sisharpa.
Nem tudom, talán csak nem néz ki a legújabb változat a Delphi?
Michael Flenov
A kapcsolat string elérhetőnek kell lennie az egész alkalmazást. Meg kell hozzáférhetővé csak 1-2 osztályt, ahol dolgozik az adatokkal, és hol lesz SqlConnection tárgyakat.
A probléma - az egyik a könyvtár szerelvény osztályok kell telepíteni egy esemény, ami látható a fő egységen, és az összes többi egyidejűleg.