Anasayfa Blog CSharp

C-Sharp Cheat Sheet

C-Sharp (C#) web uygulamaları, masaüstü uygulamaları, mobil uygulamalar, oyunlar ve çok daha fazlasını geliştirmek için kullanılır

Giriş

C# güçlü bir Nesne Tabanlı proglamlama dilidir. Java veya C++'dan gelenler C#'ın söz dizimini hızlı bir şekilde kavrayabilirler. Önemli birkaç nokta:

  • Büyük/Küçük harfe duyarlıdır. (Yani A ve a farklıdır)
  • Satırlar noktalı virgülle biter.
  • Kod, { } blokları arasına yazılır.
  • Satır içi yorumlar // ile başlar
  • Kod içerisindeki yorumlar /* */ ile yapılır.
  • XML yorumları /// ile başlar.

Genel .Net Terimleri

TerimAçıklama
RuntimeBelirli bir derlenmiş kod birimini yürütmek için gereken hizmetler koleksiyonu.
Common Language Runtime (CLR)Öncelikle .NET nesnelerini bulur, yükler ve yönetir. CLR ayrıca bellek yönetimi, uygulama barındırma, iş parçacıklarının koordinasyonu, güvenlik kontrollerinin gerçekleştirilmesi ve diğer alt düzey ayrıntıları da yönetir.
Managed code.NET çalışma zamanında derlenen ve çalışan kod. C#/F#/VB örneklerdir.
Unmanaged codeDoğrudan makine koduna derlenen ve doğrudan .NET çalışma zamanı tarafından barındırılamayan kod. Free memory management, garbage collector vb. içermez. C/C++ ile oluşturulan DLL'ler örnektir.

Hello.cs

class Hello {
  // main method
  static void Main(string[] args)
  {
    // Çıktı: Hello, world!
    Console.WriteLine("Hello, world!");
  }
}

$ dotnet run Hello, world!

// Tek satırlık yorum

/* Çok satırlı 
   yorum */

// TODO: Visual Studio'daki görev listesine yorum ekler

/// Dokümantasyon için kullanılan tek satırlık yorum

/** Çok satırlı yorum
    dokümantasyonu için kullanılır **/
Console.WriteLine("Sayı Giriniz:");
if(int.TryParse(Console.ReadLine(),out int input))
{
  // Input validated
  Console.WriteLine($"Girdiğiniz Sayı {input}");
}

Değişkenler

Bir değişkeni tanımlamak için veri türünü ve değişken adını ve ardından bir değer belirtilir.

Değişken Kullanımı

Veri Türü değişkenAdı = değer;

İsimlendirme Kuralları

  • Değişkenler alt çizgi veya harfle başlamalıdır
  • Değişkenler boşluk içeremez
  • Değişkenler sayılar içerebilir
  • Sembol içeremez (alt çizgi kabul edilir)

Veri Tipleri

Veri TürüBoyutGenişlik
int4 bytes-231 ile 231-1
long8 bytes-263 ile 263-1
float4 bytes6 ile 7 ondalık basamak
double8 bytes15 ondalık basamak
decimal16 bytes28 ile 29 ondalık basamak
char2 bytes0 ile 65535
bool1 bittrue / false
string2 bytesper char N/A
int intNum = 9;
long longNum = 9999999;
float floatNum = 9.99F;
double doubleNum = 99.999;
decimal decimalNum = 99.9999M;
char letter = 'G';
bool @bool = true;
string site = "gurkansozumcetin.com";

var num = 999;
var str = "999";
var bo = false;

Arrays

Diziler değişkenlere benzer ancak birden fazla değer tutabilirler.

Array Kullanımı

DataType[] ArrayName = { Virgülle Ayrılmış Değerler } // Her boyutta dizi DataType[] ArrayName = new DataType[3] { Komutla Ayrılmış Değerler } //3 değer bekleniyor

Array Örnek

char[] chars = new char[10];
chars[0] = 'a';
chars[1] = 'b';

string[] letters = {"A", "B", "C"};
int[] mylist = {100, 200};
bool[] answers = {true, false};

Strings

String Birleştirme

string first = "John";
string last = "Doe";

string name = first + " " + last;
Console.WriteLine(name); // => John Doe

String interpolation

string first = "John";
string last = "Doe";

string name = $"{first} {last}";
Console.WriteLine(name); // => John Doe

Verbatim String

string longString = @"Buraya her türlü karakteri yazabilirim.
!#@$%^&*()__+ '' \n \t Çift tırnak hariç herşey yazılabilir. 
Hatta birden fazla satırla bile çalışabiliriz.";

String Fonksiyonları

FonksiyonAçıklama
.LengthString değerin uzunluğunu döndüren özellik.
.Compare()İki string karşılaştıran statik bir yöntem.
.Contains()String içerisinde belirli bir alt string değeri içerip içermediğini bulur.
.Equals()İki string değerin aynı karakter verilerine sahip olup olmadığını kontrol eder.
.Format()Bir dizeyi {0} gösterimi aracılığıyla ve diğer temel öğeleri kullanarak biçimlendirir.
.Trim()Belirli string değerin sondaki ve baştaki karakterlerini kaldırır. Varsayılan olarak baştaki ve sondaki boşluklar kaldırılır.
.Split()Sağlanan string değeri kaldırır ve her iki tarafta kalan değerlerden bir dizi oluşturur.
// System.String'in özelliğini kullanma
string lengthOfString = "How long?";
lengthOfString.Length           // => 9

// System.String yöntemlerini kullanma
lengthOfString.Contains("How"); // => true

Koşullar

IF Şartı

if ifadesi, kodun yürütülmesi için koşulun doğru olarak değerlendirilmesi gerekir.

//Syntax
if (true)       
{ }  
//Örnek
if (Year > 2023)
{
    Console.WriteLine("Hello World!");
} 

IF ELSE Şartı

Eğer bir koşul doğru olarak değerlendirilmezse, diğer kodu çalıştırmak için if else ifadesini kullanabilirsiniz.

//Örnek
if (Year > 2023)
{
    Console.WriteLine("Hello World!");
} 
else 
{ 
    Console.WriteLine("Yıl: " + Year);
} 

SWITCH Şartı

If else ifadesine benzer, ancak bazı avantajlara sahiptir.

  • Okunması ve bakımı çok daha kolaydır.
  • Nested if else kullanmaktan çok daha temiz bir yapıdadır.
  • Yalnızca bir değişkeni değerlendirir.
//Syntax     
switch (switch_on)
{
    default:
} 

//Örnek
switch (Year)
{
    case 2022 : Console.WriteLine("Yıl 2022!"); break;
    case 2023 : Console.WriteLine("Yıl 2023!"); break;
    default : Console.WriteLine("Yıl: " + Year + "!");
    break;
} 
//Break anahtar kelimesi gereklidir.

Döngüler

WHILE Döngüsü

Koşul yanlış olana kadar kodu sürekli olarak döndürür.

//Syntax
while (true)
{ }
//Örnek
while (Year >= 2023)
{
    if (Year != 2100) 
    {
        Console.WriteLine(Year++);
    }
    else
    {
        break;
    }
} 
//Koşulunuzun bir noktada false olarak değerlendirildiğinden emin olun, aksi takdirde döngü sonsuzdur ve hatalara neden olabilir. 

FOR Döngüsü

While Döngüsüne benzer ancak döngünün ne zaman biteceğini siz belirlersiniz.

//Syntax
for (int i = 1; i < length; i++)
{ }
//Örnek
for (int i = 1; i <= 100; i++)
{
    Console.WriteLine(i);
} 

Bu, 1'den 100'e kadar olan sayıların çıktısını alır. İfade kolaylıkla şu şekilde ayrıştırılabilir:

  • i = 1;
  • i 100'den küçük mü yoksa eşit mi? (Doğru)
  • i'yi 1 artır
  • 100'e ulaştığımda duracak çünkü artık 100'den az olmayacak ve 100'e eşit olacak, yani koşul yanlış.

FOR EACH

Foreach döngüleri, dizilerin elemanları üzerinde kolayca gezinmemizi sağlayan bir yapıdır. İndeks numarasına bağlı kalmadan doğrudan her bir elemana erişebilme özelliği sunar.

//Syntax
foreach (var item in collection)
{ }
//Örnek
foreach (string movie in MoveisOf2023)
{ 
    Console.WriteLine(movie);
} 

MoveisOf2023 dizisindeki tüm öğelerin çıktısını alır.

Exceptions (Hata Yönetimi)

Oluşması muhtemel hataları yakalamak için try catch bloğunu kullanırsınız.

//Syntax
try
{ }
catch (Exception)
{
  throw;
} 
//Örnek
try
{
  string result = "s";
  Console.WriteLine(Convert.ToInt32(result) + 10);
}
catch (Exception exception)
{
  Console.WriteLine(exception.Message);
} 

Yukarıdaki kod bir format hatasıyla sonuçlanır çünkü s'yi bir sayıya dönüştüremezsiniz.

Methods

//Syntax
public void MethodName()
{
  //Bir değer döndürmez      
}          

public static void MethodName()
{   
  //Bir değer döndürmez, sınıfın başlatılmasına gerek yoktur
}             
public static DataType MethodName()
{ 
  //Döndürülecek bir değer gerektirir, bu yöntemin kullanılması için sınıfın başlatılmasına gerek yoktur.        
}

//Örnek
public static void WelcomeUser() 
{
  Console.WriteLine("Hello Guest!");
}
//Parametreleri Kullanma
public static void WelcomeUser(string name) 
{
  Console.WriteLine("Hello " + name + "!");
}

Her iki yöntem de aynı ada ve farklı parametrelere sahip olduğundan (Biri hiçbir parametre almaz, diğeri alır) buna Overloaded method denir.

//Veri Döndürme
public static DateTime Tomorrow()
{
  return DateTime.Now.AddDays(1); 
}

Yukarıdaki örneklerin tümü statiktir, bu Class'ı başlatmadan Methodları kullanmayı sağlar. Class ve Method hakkında daha fazla bilgi edinebilirsiniz. Public Methodlar geçerli class'ın dışında da kullanılır, Private Method yalnızca geçerli Class'ta kullanılır.

Classes

//Syntax 
class MyClassName {  }  
//Örnek
class Car     
{
  public void Manufacturer(string manufacturer)
  {
    Console.WriteLine(manufacturer);
  }
}     

Method'u Class'ta kullanmak için, önce Class'ın başlatılması gerekir.

Car car = new Car();
car.Manufacturer("Ferrari");

Method statik olarak bildirilmişse şunu yapabiliriz: car.Manufacturer("Ferrari");

Statik Methodlar faydalıdır; Classlar ve Methodlar için doğru tasarımı kullandığınızdan emin olun. Bunun iyi bir örneği Math Class'ıdır; basit hesaplamalar yapmak için Class'ı her zaman başlatmak istemezsiniz, bu yüzden çoğu yöntem statiktir.

Özet

Bu cheat sheet sayfası, C# öğrenen deneyimli geliştiriciler ve programlamanın temellerini zaten bilen kullanıcılar için C#'ın temellerini özetlemektedir; umarım bu yazı size bir şekilde yardımcı olmuştur 😉, çok fazla bilgi veya açıklama olmamasına rağmen sizin daha önce programlama ve temellerini bildiğinizi varsayıyorum.

Kaynak

quickref thecodingguys

Son Güncelleme

22 Mayıs 2024
0