Skip to content

Latest commit

 

History

History
384 lines (223 loc) · 21.4 KB

modern-web-gelistirme-6.md

File metadata and controls

384 lines (223 loc) · 21.4 KB

Modern Web Geliştirme 6

C# Temelleri

image

C# Giriş

  • C# (C-Sharp), Microsoft tarafından geliştirilen ve .NET Framework üzerinde çalışan bir programlama dilidir.
  • C# web uygulamaları, masaüstü uygulamaları, mobil uygulamalar, oyunlar ve çok daha fazlasını geliştirmek için kullanılır.
  • C# "C-Sharp" olarak telaffuz edilir.
  • Microsoft tarafından oluşturulan ve .NET Framework üzerinde çalışan nesne yönelimli bir programlama dilidir.
  • C#'ın kökleri C ailesine dayanır ve dil C++ ve Java gibi diğer popüler dillere yakındır.
  • İlk sürüm 2002 yılında yayınlandı. En son sürüm olan C# 11, Kasım 2022'de piyasaya sürüldü.
  • Mobil uygulamalar,Masaüstü uygulamaları,Web uygulamaları,Web hizmetleri,Web siteleri,Oyunlar,VR,Veritabanı uygulamaları gibi alanlarda aktif kullanılır.

Neden C# Kullanmalı?

  • Dünyanın en popüler programlama dillerinden biridir
  • Öğrenmesi kolay ve kullanımı basit
  • Büyük bir topluluk desteğine sahip
  • C#, programlara net bir yapı kazandıran ve kodun yeniden kullanılmasına olanak tanıyarak geliştirme maliyetlerini düşüren nesne yönelimli bir dildir
  • C#, C, C++ ve Java'ya yakın olduğu için programcıların C#'a geçişini veya tam tersini kolaylaştırır

C# IDE

  • C# ile çalışmaya başlamanın en kolay yolu bir IDE kullanmaktır.
  • Kodu düzenlemek ve derlemek için bir IDE (Entegre Geliştirme Ortamı) kullanılır.
  • https://visualstudio.microsoft.com/vs/community/ adresinden ücretsiz olarak indirebilirsiniz.
  • C# ile yazılan uygulamalar .NET Framework'ü kullanır, bu nedenle program, çerçeve ve dil Microsoft tarafından oluşturulduğundan Visual Studio'yu kullanmak mantıklıdır.

C# Syntax

"Hello World" yazdırmak için aşağıdaki kod kullanılır:

image

  • Satır 1: using System, System isim alanındaki sınıfları kullanabileceğimiz anlamına gelir.
  • Satır 2: Boş bir satır. C# beyaz boşluğu yok sayar. Ancak, birden fazla satır kodu daha okunabilir hale getirir.
  • Satır 3: namespace kodunuzu düzenlemek için kullanılır ve sınıflar ve diğer namespace'ler için bir konteynerdir.
  • Satır 4: Küme parantezleri {} bir kod bloğunun başlangıcını ve sonunu işaret eder.
  • Satır 5: sınıf, programınıza işlevsellik kazandıran veri ve yöntemler için bir kapsayıcıdır. C#'ta çalışan her kod satırı bir sınıfın içinde olmalıdır. Örneğimizde, sınıfa Program adını verdik.
  • Satır 7: Bir C# programında her zaman görünen bir başka şey de Main yöntemidir. Küme parantezleri {} içindeki herhangi bir kod çalıştırılacaktır. Main'den önceki ve sonraki anahtar kelimeleri anlamak zorunda değilsiniz.
  • Satır 9: Console, System isim alanının bir sınıfıdır ve metin çıktısı almak/yazdırmak için kullanılan bir WriteLine() metoduna sahiptir. Örneğimizde "Merhaba Dünya!" çıktısı verecektir.
  • Eğer using System satırını atlarsanız, metni yazdırmak/çıkarmak için System.Console.WriteLine() yazmanız gerekecektir.
  • Not: Her C# deyimi noktalı virgül ; ile biter.
  • Not: C# büyük/küçük harf duyarlıdır: "MyClass" ve "myclass" farklı anlamlara sahiptir.

C# Yorum Satırları

Yorumlar, C# kodunu açıklamak ve daha okunabilir hale getirmek için kullanılabilir. Alternatif kodu test ederken yürütmeyi önlemek için de kullanılabilir.

Tek Satırlı Yorumlar

  • Tek satırlı yorumlar iki ileri eğik çizgi (//) ile başlar.
  • // ile satır sonu arasındaki herhangi bir metin C# tarafından yok sayılır (yürütülmez).
  • Bu örnekte, bir kod satırından önce tek satırlık bir açıklama kullanılmaktadır:

image

C# Çok Satırlı Yorumlar

  • Çok satırlı yorumlar /* ile başlar ve */ ile biter.
  • ** ve */ arasındaki herhangi bir metin C# tarafından yok sayılacaktır.
  • Bu örnekte kodu açıklamak için çok satırlı bir yorum (yorum bloğu) kullanılmıştır:

image

C# Değişkenleri

Değişkenler, veri değerlerini saklamak için kullanılan kaplardır. C#'ta farklı değişken türleri vardır (farklı anahtar kelimelerle tanımlanır), örneğin:

  • int - 123 veya -123 gibi ondalıksız tam sayıları (tam sayılar) saklar
  • double - 19.99 veya -19.99 gibi ondalıklı kayan nokta sayılarını saklar
  • char - 'a' veya 'B' gibi tek karakterleri saklar. Char değerleri tek tırnak işaretiyle çevrelenir
  • string - "Merhaba Dünya" gibi metinleri saklar. String değerleri çift tırnak ile çevrelenir
  • bool - iki durumlu değerleri saklar: doğru veya yanlış

Değişken Bildirme (Oluşturma)

  • Bir değişken oluşturmak için türünü belirtmeli ve ona bir değer atamalısınız.
  • Burada type bir C# türüdür (int veya string gibi) ve variableName değişkenin adıdır (x veya name gibi). Eşittir işareti değişkene değer atamak için kullanılır.

string türünde name adında bir değişken oluşturun ve ona "Kardel" değerini atama. image

int türünde myNum adında bir değişken oluşturun ve ona 61 değerini atama.

image

Ayrıca bir değişkeni değer atamadan da bildirebilir ve değeri daha sonra atayabilirsiniz

image

Mevcut bir değişkene yeni bir değer atarsanız, bu değerin önceki değerin üzerine yazılacağını unutmayın.

image

Diğer Tipler

Diğer türlerdeki değişkenlerin nasıl bildirileceğine dair bir gösterim aşağıdaki gibidir!

image

Const Kavramı

Başkalarının (veya kendinizin) mevcut değerlerin üzerine yazmasını istemiyorsanız, değişken türünün önüne const anahtar sözcüğünü ekleyebilirsiniz.Bu, değişkeni değiştirilemez ve salt okunur anlamına gelen "sabit" olarak bildirecektir.

image

const anahtar sözcüğü, bir değişkenin her zaman aynı değeri saklamasını istediğinizde kullanışlıdır, böylece başkaları (veya kendiniz) kodunuzu karıştırmaz. Genellikle sabit olarak anılan bir örnek PI (3.14159...) değeridir.

Not: Değer atamadan sabit bir değişken bildiremezsiniz. Bunu yaparsanız bir hata oluşur: Bir const alanı için bir değer sağlanması gerekir.

Ekran Değişkenleri

  • WriteLine() yöntemi genellikle değişken değerlerini konsol penceresinde görüntülemek için kullanılır.
  • Hem metni hem de bir değişkeni birleştirmek için + karakterini kullanmak gerekir.

image

Bir değişkeni başka bir değişkene eklemek için + karakterini de kullanabilirsiniz:

image

Sayısal değerler için + karakteri matematiksel bir operatör olarak çalışır (burada int (tamsayı) değişkenleri kullandığımıza dikkat edin):

image

Yukarıdaki örnekten şunu bekleyebilirsiniz:

  • x, 5 değerini saklar
  • y, 6 değerini saklar Ardından, 5 olan x + y değerini görüntülemek için WriteLine() yöntemini kullanırız.

Birçok Değişken Bildirme

  • Aynı türde birden fazla değişken bildirmek için virgülle ayrılmış bir liste kullanılabilir.

image

  • Aynı değeri tek bir satırda birden fazla değişkene de atayabilirsiniz.

image

C# Tanımlayıcıları

  • Tüm C# değişkenleri benzersiz isimlerle tanımlanmalıdır.
  • Bu benzersiz isimler tanımlayıcı olarak adlandırılır.
  • Tanımlayıcılar kısa isimler (x ve y gibi) veya daha açıklayıcı isimler (age, sum, totalVolume) olabilir.
  • Not: Anlaşılabilir ve sürdürülebilir kod oluşturmak için açıklayıcı isimler kullanılması önerilir.

image

Değişkenleri adlandırmak için genel kurallar şunlardır:

  • İsimler harfler, rakamlar ve alt çizgi karakteri (_) içerebilir
  • İsimler bir harf veya alt çizgi ile başlamalıdır
  • İsimler küçük harfle başlamalıdır ve boşluk içeremez
  • İsimler büyük/küçük harfe duyarlıdır ("myVar" ve "myvar" farklı değişkenlerdir)
  • Ayrılmış sözcükler (int veya double gibi C# anahtar sözcükleri gibi) ad olarak kullanılamaz

C# Veri Tipleri

  • C#'ta bir değişken belirtilen bir veri türünde olmalıdır.

image

  • Bir veri türü, değişken değerlerinin boyutunu ve türünü belirtir.
  • İlgili değişken için doğru veri türünü kullanmak önemlidir; hatalardan kaçınmak, zamandan ve bellekten tasarruf etmek için, ancak aynı zamanda kodunuzu daha sürdürülebilir ve okunabilir hale getirecektir.

image

Sayılar

Sayı türleri iki gruba ayrılır:

  • Tamsayı türleri, pozitif veya negatif (123 veya -456 gibi) tam sayıları ondalıklar olmadan depolar. Geçerli türler int ve long'dur. Hangi türü kullanmanız gerektiği, sayısal değere bağlıdır.
  • Floating nokta türleri, bir veya daha fazla ondalık içeren kesirli kısmı olan sayıları temsil eder. Geçerli türler float ve double'dır.
  • C#'ta birçok sayısal tür olmasına rağmen, sayılar için en çok kullanılan int (tam sayılar için) ve double (kayan noktalı sayılar için) türleridir.
Integer Türleri

Int int veri türü -2147483648 ile 2147483647 arasındaki tam sayıları saklayabilir. Genel olarak ve dersimizde, int veri türü, sayısal değerli değişkenler oluştururken tercih edilen veri türüdür.

image

Long

Long veri türü -9223372036854775808 ile 9223372036854775807 arasındaki tam sayıları saklayabilir. Bu, int değeri saklamak için yeterince büyük olmadığında kullanılır. Değeri "L" ile bitirmeniz gerekmektedir.

image

Float Nokta Türleri

Ondalıklı bir sayıya ihtiyacınız olduğunda (9,99 veya 3,14515 gibi) float noktalı bir tür kullanmalısınız. Float ve double veri türleri kesirli sayıları saklayabilir. Değeri float için "F" ve double için "D" ile bitirmeniz gerekmektedir.

image

image

Float mı yoksa double mı kullanmalıyım?

Bir kayan nokta değerinin hassasiyeti, değerin ondalık noktadan sonra kaç basamaklı olabileceğini gösterir. Float'ın hassasiyeti yalnızca altı veya yedi ondalık basamak iken, double değişkenlerin hassasiyeti yaklaşık 15 basamaktır. Bu nedenle çoğu hesaplama için double kullanmak daha güvenlidir.

Bilimsel Sayılar

Kayan nokta sayısı, 10'un kuvvetini belirtmek için bir "e" ile bilimsel bir sayı da olabilir.

image

Booleans

Bir boolean veri türü bool anahtar sözcüğü ile bildirilir ve yalnızca true veya false değerlerini alabilir.

image

Boolean değerleri çoğunlukla koşullu testler için kullanılır.

Characters

char veri türü tek bir karakteri saklamak için kullanılır. Karakter, 'A' veya 'c' gibi tek tırnak işaretleriyle çevrelenmelidir.

image

Strings

Dize veri türü, bir karakter dizisini (metin) saklamak için kullanılır. Dize değerleri çift tırnak işaretiyle çevrelenmelidir.

image

C# Type Casting

  • Tür atama, bir veri türündeki bir değeri başka bir türe atamanızdır.

C#'ta iki tür döküm vardır:

  • Implicit Casting (otomatik olarak) - daha küçük bir yazıyı daha büyük bir yazı boyutuna dönüştürme char -> int -> long -> float -> double
  • Explicit Casting (manuel) - daha büyük bir tipi daha küçük boyutlu bir tipe dönüştürme double -> float -> long -> int -> char

Implicit Casting

Daha küçük boyutlu bir türü daha büyük boyutlu bir türe geçirirken implicit casting otomatik olarak yapılır.

image

Explicit Casting

Explicit Casting, değerin önüne parantez içinde tür yerleştirilerek manuel olarak yapılmalıdır.

image

Tip Dönüştürme Yöntemleri

Convert.ToBoolean, Convert.ToDouble, Convert.ToString, Convert.ToInt32 (int) ve Convert.ToInt64 (long) gibi yerleşik yöntemleri kullanarak veri türlerini açıkça dönüştürmek de mümkündür.

image

C# User Input

  • Console.WriteLine() işlevinin değerlerin çıktısını almak (yazdırmak) için kullanıldığını zaten öğrenmiştiniz.
  • Kullanıcı girdisini almak için Console.ReadLine() kullanacağız.

image

User Input and Numbers

  • Console.ReadLine() yöntemi bir dize döndürür. Bu nedenle, int gibi başka bir veri türünden bilgi alamazsınız.

image

Not: Yanlış girdi girerseniz (örneğin sayısal bir girdide metin), bir istisna/hata mesajı alırsınız (System.FormatException: 'Input string was not in a correct format.' gibi).

C# Operatorler

  • Operatörler, değişkenler ve değerler üzerinde işlem yapmak için kullanılır. Aşağıdaki örneklerde, iki değeri toplamak için + operatörünü kullanılmaktadır.

    image

image

C# Strings

String Birleştirme

  • "+", dizeleri birleştirmek için dizeler arasında kullanılabilir. Buna birleştirme denir.

image

  • Yazdırma sırasında ad ve soyad arasında bir boşluk oluşturmak için "John" kelimesinden sonra bir boşluk eklediğimize dikkat edin.
  • İki dizeyi birleştirmek için string.Concat() yöntemini de kullanabilirsiniz.

image

C# String Interpolation

Dize birleştirmenin bir başka seçeneği de, değişkenlerin değerlerini bir dizedeki yer tutucuların yerine koyan dize enterpolasyonudur.

image

C# If ... Else

  • C#, matematiğin olağan mantıksal koşullarını destekler.
  • Şundan daha az: a < b
  • Daha az veya eşit: a <= b
  • Şundan büyük: a > b
  • Büyük veya eşit: a >= b
  • a == b'ye eşittir
  • Eşit Değil: a != b
  • Farklı kararlar için farklı eylemler gerçekleştirmek üzere bu koşulları kullanabilirsiniz.

C# aşağıdaki koşullu ifadelere sahiptir:

  • Belirtilen bir koşul doğruysa yürütülecek bir kod bloğu belirtmek için if kullanın
  • Aynı koşulun yanlış olması durumunda çalıştırılacak bir kod bloğu belirtmek için else kullanın
  • İlk koşulun yanlış olması durumunda test edilecek yeni bir koşul belirtmek için else if kullanın
  • Yürütülecek çok sayıda alternatif kod bloğu belirtmek için switch kullanın

image

image

Ternary Operator

Ayrıca, üç işlenenden oluştuğu için üçlü operatör olarak bilinen bir kısa el if else vardır. Birden fazla kod satırını tek bir satırla değiştirmek için kullanılabilir. Genellikle basit if else ifadelerinin yerine kullanılır.

image

C# Switch

Yürütülecek birçok kod bloğundan birini seçmek için switch deyimini kullanılabilir. Şimdi dizelerden oluşan bir dizi tutan bir değişken bildirdik.

Buna değer eklemek için bir dizi değişmezi kullanabiliriz - değerleri virgülle ayrılmış bir listeye, küme parantezleri içine yerleştirin: image

  • switch ifadesi bir kez değerlendirilir
  • İfadenin değeri her bir durumun değerleriyle karşılaştırılır
  • Bir eşleşme varsa, ilgili kod bloğu yürütülür
  • C# bir break anahtar sözcüğüne ulaştığında switch bloğundan çıkar.
  • Bu, blok içinde daha fazla kod ve durum testinin yürütülmesini durduracaktır.
  • Bir eşleşme bulunduğunda ve iş bittiğinde, ara verme zamanı gelir.
  • Varsayılan anahtar kelime isteğe bağlıdır ve büyük/küçük harf eşleşmesi olmadığında çalıştırılacak bazı kodları belirtir.

C# While Loop

  • while döngüsü, belirli bir koşul Doğru olduğu sürece bir kod bloğu boyunca döner. image

C# For Loop

Bir kod bloğunda tam olarak kaç kez döngü yapmak istediğinizi bildiğinizde, while döngüsü yerine for döngüsünü kullanabilirsiniz.

image

C# Arrays

  • Diziler, her değer için ayrı değişkenler bildirmek yerine birden fazla değeri tek bir değişkende saklamak için kullanılır.
  • Bir dizi bildirmek için, değişken türünü köşeli parantezlerle tanımlanır. image

C# Çok Boyutlu Diziler

Satırları ve sütunları olan bir tablo gibi verileri tablo biçiminde saklamak istiyorsanız, çok boyutlu dizilere aşina olmanız gerekir. Çok boyutlu bir dizi, temelde dizilerden oluşan bir dizidir.Diziler herhangi bir sayıda boyuta sahip olabilir. En yaygın olanları iki boyutlu dizilerdir (2D).

Tek virgül [,] dizinin iki boyutlu olduğunu belirtir. Üç boyutlu bir dizide iki virgül bulunur: int[,,].

image