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ı

Extension ve Rekürsif Metotlar

Extension(Genişletilmiş) Metot Kullanımı

Extension Metotların kelime anlamı genişletilebilir metotlardır. C# 3.0 ile hayatımıza giren, aynı kodu defalarca yazmak yerine, bir kere yazıp her yerden erişebileceğimiz kolay kullanımı olan metotlardır.

Extension metot yazarken dikkat etmemiz gereken bir kaç kural vardır. Şu şekilde :

  • Static bir class içerisinde static bir metot olarak yazılmalılar.
  • Extension metod da tanımlı parametrelerden sadece 1 tanesi this ile tanımlanabilir.

Küçük bir örnek ile kullanımını görelim.

public static class MyExtensionClass
{
    public static bool IsEventNumber(this int value)
    {
        if(value%2==0)
            return true;
        else
            return false;
    }
}

Yukarıdaki örnekte static class içerisinde IsEventNumber adında bir extension metot görüyoruz. Metodun kendisi de static keywordü ile tanımlandı. this keywordünün uygulandığı parametreye bakarsak, integer ver tipindeki değişkenlere uygulanabilir is extension metot olduğunu görüyoruz. Sayısının çift olup olmaması durumuna göre de geriye bool bir değer dönüyor.

Extension metotların kullanımını oturtmanın en kolay yolu öncelikle işi yapacak olan metodu istenileni karşılayacak şekilde yazmaktır. Daha sonradan class ve metodu static yaparak ve genişletilecek veri tipine bağlı parametrenin başına this anahtar kelimesi ekleyerek kullanabilirsiniz.

Yukarıdaki extension metodun örnek kullanımı ise şu şekildedir.

int deger = 123; bool isEven = deger.IsEvenNumber();

Rekürsif(Yinelemeli) Metot Kullanımı

Rekürsif metotlar ilk öğrenildiğinde içselleştirilmesi ve kullanılması zor metotlardır. Ama yazılımın ilerleyen yıllarında kullanımı oturur ve bir çok soruna rekürsif metotları kullanarak çözüm getirebilirsiniz. O nedenle acele etmemek gerek :)

Çok sık olmasa da bazen fonksiyonun kendi kendini çağırmasına ihtiyaç duyarız. For döngüsü karmaşık bir kod yazarak da bu ihtiyacı karşılamak mümkün. Rekürsif fonksiyonlar ise tam da bu ihtiyaç için ortaya koyulmuştur.

Rekürsif fonksiyon kendi kendini çağırma yeteneğine sahip olduğu için kullanırken çok dikkatli olmak gerek. En büyük sorunlardan biri sonsuz döngüye neden olmalı. Bu da System.StackOverflowException olarak bilinen hataya neden olur. Yani belleğin stack bölgesinde bu fonksiyon çağrımı için ayrılan alan tükenmiştir. Yinelemeli olarak yaptığınız işe bağlı olarak risk de artar.

Aşağıdaki örneği inceleyerek ve hatta kağıt üzerinde yazarak yinelemeli fonksiyonların kullanımını daha iyi oturtabilirsiniz.

static int FibonacciSerisi(int sayi)
{  
    if (sayi==0)
        return 0;
    elseif (sayi==1)
        return 1;
    else
        return FibonacciSerisi(sayi-1)+FibonacciSerisi(sayi-2);
}

HackerRank Challenge

Join the challenge to submit your solution.
Şimdi challenge zamanı! Hackerrank profili aç ve [şu challenge’ı](https://www.hackerrank.com/challenges/30-recursion/problem) yap: C# dersini tamamlaman için en sonunda Hackerrank’te C# alanında yıldızları toplaman gerekiyor. Bu challenge’lar seni yıldızlara adım adım götürecek! :) Challenge’ı yapıp Hackerrank profilinin linkini aşağıdaki kutucuğa yaz:

Quiz

Answer the questions to check your understanding.

This lesson includes a short quiz.

Ödev

Submit your work to complete this lesson.

Join the project workspace to share your solution and receive feedback.

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