C Sharp sözdizimi

Temel madde: C#

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) 
abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyrefreturnsbytesealedshortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvoidvolatilewhile - - -
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:
addandaliasascendingargsasyncawaitbydescendingdynamicequalsfromgetglobalgroupinitintojoinletmanagednameofnintnotnotnullnuintonororderbypartialrecordremoverequiredselectsetunmanagedvaluevarwhenwherewithyield - - -
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 
TürAçıklamaÖrnekintTam sayıint x = 10;floatOndalıklı sayı (küçük hassasiyet)float y = 3.14f;doubleOndalıklı sayı (yüksek hassasiyet)double z = 3.1415;charTek bir karakterchar c = 'A';stringMetinstring name = "Ali";boolMantıksal değerbool isTrue = true;
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