C Sharp sözdizimi

C# sözdizimi, kodların nasıl yazılacağını ve yorumlanması gerektiğini tanımlayan kurallar kümesidir. Bu kurallar, C# programlarının derleyici tarafından doğru bir şekilde okunup çalıştırılmasını sağlar. C# sözdizimi, diğer programlama dillerinkine benzer şekilde değişkenlerin tanımlanmasından, döngülerin ve koşullu ifadelerin yazılmasına kadar, programın yapısını ve işleyişini belirleyen temel unsurları içerir.

Temel Bilgiler (Basics)
Tanımlayıcı (Identifier)
C# sözdiziminde bir metoda, değişkene veya kullanıcı tarafından tanımlanan herhangi başka bir öğeye atanan isme tanımlayıcı (Identifier) denir.

Değişkenler,
"_" ile
Büyük ve küçük harf ile başlayabilir.
Bir karakterden birkaç karaktere değişen uzunluklarda olabilir
Türkçe karakterler kullanılabilir.

Fakat;
Bir numerik karakter ile başlayamaz.
Anahtar kelime (keyword) hariç, sembol ile başlayamaz. [Anahtar kelimeler (keywords)]
511 karakterden fazla karaktere sahip olamaz.

Anahtar kelimeler (Keywords)
Bağlamsal anahtar kelime, kodda belirli bir anlam sağlamak için kullanılan ancak C# dilinde rezerve edilmiş bir sözcük olmayan kelimedir. Bazı bağlamsal anahtar kelimeler, örneğin partial ve where, birden fazla bağlamda özel anlamlara sahiptir. Aşağıdaki C# anahtar kelimeleri bağlamsaldır:

Anahtar kelimeler, değişken isimlendirirken kullanılamayan ayrılmış sözcüklerdir. Ancak, kullanılmak istenilen kelimenin önüne @ (kuyruklu a) koyarak, tanımlayıcı hâle getirilebilir.

string @out; //Şimdi olağan tanımlayıcı kelime olarak kullanılabilir.

Not: out günümüzde hala kullanılabilen bir anahtar kelimedir.

Değişkenler (Variables)
Değişkenler, değerlerle ilişkilendirilmiş tanımlayıcılardır. Değişkenin türü ve adı yazılarak bildirilirler ve isteğe bağlı olarak aynı satır içinde ilk değerleri atanabilir.

Tanımlama (Declare)

int degiskenim; // 'int' türünde 'degiskenim' adında başlangıç değeri atanmamış bir değişken tanımlama

Atama (Initialize)

Bir değişkene istenilen bir değer tanımlayabilmektir.

int degiskenim; // Atama yapılmamış bir değişken bildirme
degiskenim = 35; // Değişkene bir değer atama

Bildirim ve Atama (Declare & Initialize)

int degiskenim = 35; // Aynı zamanda değişkenin bildirimi ve atanması

Büyük ve küçük harfe duyarlıdır
Değişkenler, aynı isme sahip olsalar dahi büyük ve küçük harf farkı olduğunda farklı değişkenler olarak değerlendirilir ve farklı değerler tutabilirler.

string book = "Suç ve Ceza";
string Book = "Savaş ve Barış";

Veri Türleri (Data Types)
C# statik olarak tür denetimi yapılan bir dildir, yani her değişkenin bir türü olmalıdır.

Temel Veri Türleri

int age = 25;
float pi = 3.14f;
string name = "John";
bool isAlive = true;
Console.WriteLine($"Name: {name}, Age: {age}, IsAlive: {isAlive}");

Operatörler (Operators)
Aritmetik Operatörler
Toplama (+), Çıkarma (-), Çarpma (*), Bölme (/), Modül (%).

Atama Operatörleri
= ile değer atanır.
Kısayollar: +=, -=, *=, /=, %=.

Karşılaştırma Operatörleri
==, !=, , =.

Mantıksal Operatörler
VE (&&), VEYA (||), DEĞİL (!).

Koşul İfadeleri (Conditional Expressions)
C# programlarında koşullar, programın akışını kontrol eder.

if-else:

int number = 10;

if (number > 0)
{
Console.WriteLine("Pozitif");
}
else
{
Console.WriteLine("Negatif veya Sıfır");
}

switch

string day = "Monday";

switch (day)
{
case "Monday":
Console.WriteLine("Pazartesi");
break;
case "Friday":
Console.WriteLine("Cuma");
break;
default:
Console.WriteLine("Diğer gün");
break;
}

Döngüler (Cycles)
for Döngüsü

for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Sayı: {i}");
}

while Döngüsü

int counter = 0;
while (counter < 5)
{
Console.WriteLine($"Counter: {counter}");
counter++;
}

foreach Döngüsü

string[] fruits = { "Elma", "Armut", "Muz" };

foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}

Metotlar (Methods)
Metotlar, tekrar eden kodların modüler hale getirilmesini sağlar.

Tanımlama

class Program
{
static void Greet(string name)
{
Console.WriteLine($"Merhaba, {name}!");
}

static void Main(string[] args)
{
Greet("Ali");
}
}

Geri Dönen Metot

static int Add(int a, int b)
{
return a + b;
}

Sınıflar ve Nesneler (Classes and Objects)
C# nesne yönelimli bir dildir. Sınıflar, bir nesne için planlar veya şablonlardır.

Sınıf Tanımlama

class Car
{
public string Brand { get; set; }
public int Year { get; set; }

public void DisplayInfo()
{
Console.WriteLine($"Marka: {Brand}, Yıl: {Year}");
}
}

Nesne Kullanımı

Car myCar = new Car();
myCar.Brand = "Toyota";
myCar.Year = 2020;
myCar.DisplayInfo();

Hata Yönetimi (Error Management)
Hatalar, try-catch blokları ile yönetilir.
try
{
int x = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine($"Hata: {ex.Message}");
}
finally
{
Console.WriteLine("Her zaman çalışır.");
}

Kaynakça