суббота, 28 января 2012 г.

C# dərsləri azərbaycan dilində. 11-ci dərs.

Salam,
Növbəti C# dərsimizə başlayırıq.

C# dərsləri. 11-ci dərs.

 Tiplər (1-ci hissə)


C# dili sərt (ciddi) tipləşdirilmiş dilidir. Yəni tiplərə ciddi fikir verən dildir, onların uyğunsuzluğuna imkan yaratmır. Nəticədə proqramçının səhvləri hələ kompiyasiya zamanı üzə çıxır. Bu isə böyük “baş ağrısından” bizi qoruyur.

Deməli, C# dili bizdən hər bir yeni yaratdığımız dəyişənin tipini daxil etməyimizi tələb edir. Biz dəyişənin tipini daxil etməklə, kompilyatora bu dəyişən üçün nə qədər yaddaş ayrılmasını, bu dəyişənin xüsusiyyətlərini bildiririk.

Tiplər C# dilinin tərkibində olan və ya istifadəçinin yaratdığı yeni tiplər olur.

Gəlin dilin tərkibində olan tiplərə nəzər salaq.



Gördüyünüz cədvəldə bütün tiplər C# dilinin tərkibində olan tiplərdir.

Rəqəmsal tiplər iki hissəyə bölünür – tam ədələri və kəsr ədədləri əks etdirən tiplər. Tam ədədi əks etdirən tiplər bit həcminə görə fərqlənir, yəni təbii ki çox-bitli tip daha böyük bir ədədi özündə saxlaya bilər. Hər bit həcmində olan tiplər də iki cür olur, işarəli və işarəsiz. Misal: int işarəli ədələri ifadə edə bilir (0, 564, -854546, ...). uint tipi isə yalnız müsbət ədələri ifadə edə bilər (0, 648, ...). Kəsr ədələri ifadə edən tiplərdən double tipi float-dan böyuk həcmə malikdir. decimal isə həcmdə böyük olan tipdir, və o yalnız yüksək dəqiqlik tələb edən hesablamalarda istifadə olunur (məs: riyaziyyat, bank hesablamaları, aeronaviqasiya və s.).


Qayda: daha iri həcmli tipdən olan dəyişənin qiymətini ondan balaca həcmli olan tipli dəyişənə vermək olmaz! Yalnız tərsinə olar. 






Qeyri-rəqəmsal tiplərdən char tipi Unicode simvolları ifadə edən tipdir (‘ə’, ‘ğ’, ‘2’, ‘!’, ...). 


bool tipinin isə iki qiyməti ola bilər – truefalse. Bu məntiqi tipin köməyi ilə müxtəlif məntiqi əməliyyatlar etmək olar – müqayisə, yoxlama və s. 




Aşağıdakı cədvəl bu tiplər haqqında ətraflı məlumat verir:




.NET aləmində tiplərin adını bilmək sizə vacibdir, lakin onlardan nadir hallarda istifadə olunur. Bu adlar başqa dildə .NET üçün yazılmış proqramlardan istifadə edəndə və başqa hallarda lazım ola bilər. Lakin, C# dili qeyd etdiyimiz kimi tamamile obyekt yönlü dildir, ona görə bu dilin tipləri də obyektdir. Yəni misal üçün Java dilindən ( C#-ın böyük qardaşı) fərqli olaraq tipləri obyekt örtükləri ilə əvəz etmək lazım olmur.





Bu dediklərimi siz indi tam anlamasanız da narahat olmayın. Klassları keçəndə hər şey aydın olacaq. İndi isə bilin ki  C# dilinin tiplərinin .NET ləqəbləri var, və onlarla tanış olsanız yaxşı olar.



Bir fikri də qeyd etmək lazımdır. Sual oluna bilər ki, niyə bu qədər fərqli həcmdə rəqəmsal tiplər var. Elə ən böyüyünü götürək, istifadə edək, kifayətdir. Məsələ burasındadır ki, proqramçı iri həcmli proqram yazarkən kompüterin operativ yaddaşının məhdüdlüğünü hər zaman yadda saxlamalıdır və israfa yol verməməlidir. Balaca proqramlarda isə bu əhəmiyyətli deyil, ona görə də biz hələ ki double və int tiplərindən istifadə edəcəyik.


İkinci hissədə biz tiplərin qiymət və ünvan növləri haqqında bəhs edəcəyik, inşəallah.