Mən delegate və event mövzusunu yeni oxumuşam. Amma onlar barədə fikirləşəndə başım qarışır.
Onların esas cəhətləri nələrdir?
Oxşar və fərqli cəhətləri nələrdir?
Mən delegate və event mövzusunu yeni oxumuşam. Amma onlar barədə fikirləşəndə başım qarışır.
Onların esas cəhətləri nələrdir?
Oxşar və fərqli cəhətləri nələrdir?
Verilmiş cavablar və yazılan şərhlər (6 cavab var)
Əslində Event elə özü bir Delegate növüdür (Multicasted Delegate). Gördükləri işə görə demək olar ki eynidirlər. Bir eventi tanıdarkən onun tipi kimi bir delegate qoymaq lazımdır.
Amma əsas fərqləri ondadır ki, bəzən Eventdən istifadə etmək Delegate`yə nisbətən daha təhlükəsiz ola bilər. Burda gözlənilən təhlükə proqramçının səhvən hansısa bir sinfin işinə müdaxilə edib onu korlamasıdır.
Biz bir delegatenin üzərində bu əməlləri apara bilərik: hər hansı method`a bərabərləşdirə, silə, üzərinə method gələ və Method`unu silə bilərik
Amma Eventdə isə bunlardan yalnız ikisini edə bilərik: Üzərinə method əlavə edə və çıxa bilərik.
Başqa bir fərqləri də ondadır ki biz delegateni proqramın islənilən yerində cağıra bilərik:
amma biz bunu Event üçün edə bilmərik, çünki event yalnız öz yerləşdiyi class daxilində çağırıla bilər. O da eyni şəkildə çağırılır. Buna gərə də təhlükəsizlik baxımından Event daha yaxşıdır məncə. Amma bu o demək deyil ki Delegateni bir qırağa qoyub ancaq Eventdən istifadə eləməl lazımdır 🙂
1
Salam Togrul. class ve object haqqinda genis melulat vere bilersen? nese men yaxsi basa dusmurem onlari
2
Salam. Belə başa düşdüm ki, siz class və object`in məntiqini başa düşə bilmirsiz. Əgər elədirsə onda bunu belə bir misalla başa salmağa çalışacam:
Məsələn “İnsanlar” deyəndə ağlımıza düşünən, danışan, öyrənən və s. bacarıqları olan bir canlı qrupu ağlıma gəlir. “Vəli” (və ya “Əli” 🙂 ) deyəndə mən mən yenə də düşünən, danışan, öyrənən və. bir canlı fikirləşirəm. Amma bütün “İnsanlar” eyni deyil, Əlinin özünə məxsus xüsusiyyətləri də ola bilər , məsələn, boyu, yaşı, bildiyi dillər və s. Burada biz “İnsanları” bir Class`a bənzədə bilərik. Əlini isə həmin “İnsanlar” sinfinə mənsub olan bir Obyekt (insan) olacaq.
C#`də class`ın yaradılması nümunəsi:
Obyekti tanıtmaq üçün isə aşağıdakı koddan istifadə etməlisiniz:
gördüyünüz kimi əvvəl obyektin aid olduğu sinfin adını, sonra öz adını sonra =, sonra new sonra isə yenidən sinif adı və () yazırıq. (Bunun daha mürəkkəb formaları da var, hələlik bu bəs edər məncə)
Sonra yaratdığımız obyektin xüsusiyyətlərini dəyişə də bilərik, Məsələn əlinin boyu uzanacaq, Yaşı artacaq və s.
bu xüsusiyyətlərə çatmaq üçün nöqtə operatorundan istifadə etməliyik.
Əlinin aid olduğu sinifdə (İnsanlar) danışmaq bacarığı var. Yəni Əli də danışa bilər. Aşağıdakı kodla Əliyə “Salam” dedizdirsək:
Qeyd: yuxarıda yazdığım kodları olduğu kimi Visual C#`ə əlavə edib yoxlamağa çalışmayın. Çünki onları yalnız işləmə prinsipini başa salmaq üçün yazmışam, Compilerdən keirə bilməyə bilərsiniz.
Daha aydın başa düşmək üçün bir kitaba ya online resursa müraciət etsəniz yaxşı olar. Ümid edirəm bəzi şeyləri başa düşməkdə sizə kömək edə bildim.
3
Bu haqda coxsayli yazilar vardir.
En sade ve qisa asagidaki link izah edir:
1. http://www.deknight.com/2010/10/difference-between-class-and-object-in.html
Lakin dahasi ucun bu linklere de baxmaginiz faydalidir, cunki bu sual artiq defelerle forumlarda verilib ve cavablandirilib :
1. http://docstore.mik.ua/orelly/java/javanut/ch03_01.htm
2. http://www.allinterview.com/showanswers/32551.html
3. http://forums.techarena.in/software-development/1131896.htm
4. http://www.codestyle.org/java/faq-Objects.shtml#classobjectdiff
5. http://en.wikipedia.org/wiki/Object_%28computer_science%29
6. http://en.wikipedia.org/wiki/Class_%28computer_science%29
7. http://answers.yahoo.com/question/index?qid=20081022052646AAtG6J3
8. http://mr-ponna.com/Question/343/What-is-the-difference-between-an-object-and-a-class-/
Yene nese sual olsa yazin.
Tesekkurler.
0
Klass və Obyekt anlayışları müqaisə olunmamalıdırlar. Burda qeyri adi bir şey yoxdur. Ən sadə hala baxaq: tutaq ki, int tipindən hər-hansı x dəyişəni elan edirik aşağıdakı kimi:
Bu zaman kompilyator başa düşür ki, biz
tipindən olan
adlı dəyişən elan etmişik. Daha sonra biz bu dəyişənə hər hansı qiymət mənimsədə bilərik (
) v.s.
Klasslar isə
kimi standart yox, proqramçının
yaratdığı tiplərdir. Misal üçün yuxarıda Toğrul
adlı yeni tip – klass yaratmışdır. Daha sonra isə bu yaratdığı tidən
adlı
dəyişən elan etmişdir. Klass tipindən olan dəyişənlərə
deyirlər. Başqa sözlə desək, Yuxarıdakı nümunədə İnsanlar klass tipindən Eli obyekt dəyişəni elan edilib, yaradılıb.
3
Cox sag olun. Minnetdaram. c#-dan maraqli linkler kitablar ve ya melumat tapanda paylasin zehmet olmasa. Haminiza ugurlar
Sual verin
Cavab verin