Hello World ve program yapısı
Üst düzey ifadeler (.NET 6'dan beri), şablon sınıfını atlamanıza olanak tanır.
| Element | Kod |
|---|
| Üst düzey program | Console.WriteLine("Hello, World!"); |
| Bir ad alanını içe aktar | using System; |
| Klasik giriş noktası | static void Main(string[] args) { ... } |
| Bir satır yazdır | Console.WriteLine("text"); |
| Bir satır oku | string s = Console.ReadLine(); |
| Dize interpolasyonu | Console.WriteLine($"Hi {name}"); |
| Yorumlar | // line ve /* block */ |
Veri tipleri
| Tip | Açıklama |
|---|
int | 32 bit işaretli tam sayı |
long | 64 bit işaretli tam sayı |
double / float | Kayan noktalı sayılar |
decimal | Yüksek duyarlıklı ondalık (para) |
bool | true veya false |
char | Tek Unicode karakteri |
string | Değiştirilemez metin |
var | Derleyici tipi çıkarır |
int? | Null olabilen değer tipi |
Değişkenler
| İşlem | Söz dizimi |
|---|
| Tanımla ve ilk değer ata | int x = 5; |
| Tip çıkarımı | var name = "Ada"; |
| Sabit | const double Pi = 3.14159; |
| Salt okunur alan | readonly int id; |
| Null olabilen referans | string? maybe = null; |
| Null birleştirme | var y = maybe ?? "default"; |
| Null koşullu | int? len = text?.Length; |
Kontrol akışı
| İfade | Söz dizimi |
|---|
| If / else | if (x > 0) { ... } else { ... } |
| Switch ifadesi (statement) | switch (n) { case 1: ...; break; default: ...; } |
| Switch ifadesi (expression) | var s = n switch { 1 => "one", _ => "other" }; |
| While döngüsü | while (i < n) { ... } |
| Do-while döngüsü | do { ... } while (i < n); |
| For döngüsü | for (int i = 0; i < n; i++) { ... } |
| Foreach döngüsü | foreach (var item in list) { ... } |
| Break / continue | break; bir döngüden çıkar, continue; bir sonraki yinelemeye atlar |
Metotlar
| İşlem | Söz dizimi |
|---|
| Bir metot tanımla | int Add(int a, int b) { return a + b; } |
| İfade gövdeli | int Add(int a, int b) => a + b; |
| Geri dönüş değeri yok | void Greet() { ... } |
| İsteğe bağlı parametre | int Pow(int b, int e = 2) { ... } |
| Adlandırılmış argümanlar | Pow(b: 2, e: 3); |
| Out parametresi | bool TryParse(string s, out int n) { ... } |
| Statik metot | static int Square(int x) => x * x; |
| Lambda ifadesi | Func<int, int> f = x => x * 2; |
Sınıflar ve OOP
| İşlem | Söz dizimi |
|---|
| Bir sınıf tanımla | class Dog { ... } |
| Otomatik özellik | public string Name { get; set; } |
| Salt okunur özellik | public int Id { get; } |
| Yapıcı (constructor) | public Dog(string name) { Name = name; } |
| Bir nesne oluştur | var d = new Dog("Rex"); |
| Kalıtım | class Puppy : Dog { ... } |
| Arayüz | interface IRunnable { void Run(); } |
| Bir metodu geçersiz kıl | public override void Speak() { ... } |
| Record (değiştirilemez) | record Point(int X, int Y); |
Koleksiyonlar
System.Collections.Generic'ten generic koleksiyonlar.
| Tip | Kullanım ve örnek |
|---|
List<T> | Dinamik dizi: list.Add(1); list.Count; |
Dictionary<K, V> | Anahtar-değer: dict["a"] = 1; dict.ContainsKey("a"); |
HashSet<T> | Benzersiz değerler: set.Add(5); set.Contains(5); |
Queue<T> | FIFO: q.Enqueue(x); q.Dequeue(); |
Stack<T> | LIFO: s.Push(x); s.Pop(); |
| Dizi | int[] nums = { 1, 2, 3 }; |
| Koleksiyon başlatıcı | var l = new List<int> { 1, 2, 3 }; |
| Bir sözlüğü dolaş | foreach (var kv in dict) { kv.Key; kv.Value; } |
LINQ
Koleksiyonları akıcı şekilde sorgulayın; System.Linq'ten.
| İşlem | Söz dizimi |
|---|
| Filtrele | nums.Where(n => n > 0) |
| Yansıt / dönüştür | nums.Select(n => n * 2) |
| Sırala | nums.OrderBy(n => n) / OrderByDescending(...) |
| İlk eşleşme | nums.First(n => n > 5) / FirstOrDefault(...) |
| Any / all | nums.Any(n => n < 0) / nums.All(n => n > 0) |
| Eşleşmeleri say | nums.Count(n => n > 0) |
| Toplama (aggregate) | nums.Sum(), nums.Max(), nums.Average() |
| Grupla | items.GroupBy(i => i.Category) |
| Somutlaştır | .ToList() / .ToArray() |
Yaygın desenler (özellikler, async)
| Desen | Söz dizimi |
|---|
| Async metot | async Task<int> GetAsync() { ... } |
| Bir görevi await et | var result = await GetAsync(); |
| Try / catch | try { ... } catch (Exception e) { ... } |
| Finally | finally { ... } her zaman çalışır |
| Using (dispose) | using var file = File.OpenRead(path); |
| Dize biçimlendirme | $"Total: {amount:C}" |
| Generic sınıf | class Box<T> { public T Value; } |
| Desen eşleştirme | if (obj is Dog d) { d.Bark(); } |
En çok başvurduğunuz C# söz dizimi, koleksiyonlar ve LINQ sorguları tek sayfada. Bu C# hile sayfası, C# yazmak için hızlı bir başvurudur - veri tipleri, kontrol akışı, sınıflar, List/Dictionary koleksiyonları, LINQ ve deyimsel .NET kodunu tanımlayan özellik ve async desenleri.
Buradaki her şey .NET üzerinde standart C#'tır ve dotnet CLI ile çalışır. İhtiyacınız olanı kopyalayın ya da herhangi bir kod parçasını C# playground'da canlı deneyin - kurmanız gereken bir SDK yok.