Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

C# 101

Programlama Dillerinin Tarihçesi
C# Tanıtımı

Dotnet 5 Kurulumu
VS Code Kurulumu

Main Methodu - Namespace kavramı - System Using Direktifleri - Run

Değişkenler ve Veri Tiplerleri

Operatorler

Tip Dönüşümleri

Try Catch Finally ve Mantıksal Hatalar
Debugging, Watch ve Variables Pencereleri

If-ElseIf-Ternary-If
Switch-Case

For Loop ve Break Continue Ifadeleri
While Foreach

Tanımlama, Erişim ve Döngülerle Dizi Kullanımı
Array Sınıfı Methodları

Metot Tanımlama
Metot Overloading
Rekürsif ve Extension Metotlar

Algoritma Soruları

String Metotlar
Datetime ve Math Sınıfları

Koleksiyonlar Nedir? Avantajları ve Dezavantajları Nelerdir?
Generic Koleksiyonlar ve List
ArrayList
Dictionary

Koleksiyonlarla ilgili algoritma soruları

Sınıf Nedir ? Instance, Field, Property
Erişim Belirleyiciler ve Kurucu Fonksiyonlar
Encapsulation ve Property Kavramı
Static Sınıf ve Üyeler
Struct(Yapı) Kavramı
Enum

Object Orientented Programming ve Prensipleri Nedir?
Inheritance
Polymorphism ve Sealed Class
Interface
Abstract Class

Telefon Rehberi Uygulaması

ToDo Uygulaması

Koleksiyon(Collections) Nedir ?


Klasik programlama dillerinde array yani diziler çok önemli veri tipleridir. Birçok problemimizi diziler yardımıyla çözebiliriz ama bazı handikapları nedeniyle birçok sorun karşısında da yetersiz kalırlar.Bu sorunları şöyle sıralayabiliriz:


  • Array'in elemanları aynı veri tipinde olmalıdır.
  • Array'in boyutu önceden belirlenmelidir.


Oysa programlama dillerinde farklı türlerde verileri saklamaya ihtiyaç duyarız. Ve çoğu zaman ne kadar veri saklayacağımız program akışında belli olabilir. Koleksiyonlar tam da bu sorunları çözmek için dizilerin handikaplarından yaratılmıştır.


Dizilerin aksine koleksiyonların bazı tipleri; üzerinde çalıştıkları makinaın RAM'i yettiği sürece genişleyebilirler ve farklı türlerde veri tiplerini saklayabilirler.

Koleksiyonların elemanları object tipindedir. Hatırlayacak olursak öğrendiğimiz veri tipleri için object sınıfından türediklerini söylemiştik. Yani bu bir sorun değil, her türlü veriyi koleksiyonlar içerisinde saklayabiliriz.


Koleksiyonlar System.Collections namespace i yani isim uzayı altında bulunurlar. Yani bir koleksiyon tipini kullanmak istiyorsanız System.Collections'ı using direktifi ile programınıza import ediyor olmanız gerekiyor.


Peki bu Koleksiyonlar'ın hiç dezavantajı yok mu? Olmaz olur mu tabiki var. Gelin yakından bakalım.


Dezavantajları


.NEt platformda kullanıdığımız veri tipleri 2'ye ayrılır. Değer ve referans veri tipleridir. Değer tipleri belliğin stack bölgesinde tutulurken, Referans tipleri belleğin heap bölgesinde tutulur.


  • Değer Tipleri: int, long, float, double, decimal, char, bool, byte, short, struct, enum


  • Referans Tipleri: string, object, class, interface, array, delegate, pointer



Bir değer tipinin referans tipine dönüştürülme boxing, tam tersine unboxing işlemi denir.

Koleksiyonlar verilerini object tipinde tutuyor demiştik. Object de bir referans tipi. Bu demek oluyor ki değer tipinde bir veriyi koleksiyona eklemek istediğimde bir boxing işlemi yapıyorum. Daha sonra elemanı okumak istediğimde de unboxing işlemi yapıyorum. Boxing ve unboxing işlemleri bilgisayar açısından maliyetli bir işlemdir. Koleksiyon içerisindeki eleman sayısının artışına bağlı olarak bu boxing ve unboxing işlemlerinin sayısı artacaktır. Buna bağlı olarakta uygulamanın performansı olumsuz yönde etkilenecektir.


NOT: Boxing ve unboxing işlemlerinin performansa etkisine detaylı bakmak için şu makaleyi okumanızı öneririm:


Burak Selim Şenyurt | Boxing ve Unboxing Performans Kritiği


NOT: Heap ve stack ile detaylı bilgi için lütfen aşağıdaki makalelere göz atınız.


Stack ve Hesap Havramları | Gökhan Gokalp


Stack ve Hesap Arasındaki Fark Nedir?

Previous
Next

Lesson discussion

Swap insights and ask questions about “C# 101”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved