Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

C# ve .NET Temel Eğitimi

.NET, Microsoft tarafından geliştirilen bir platformdur ve yazılım geliştirme sürecini kolaylaştırmak için bir dizi araç ve teknoloji sunar. ".NET" terimi, "Network Enabled Technologies" kelimelerinin kısaltmasıdır ve aslında bir dizi teknoloji ve framework koleksiyonunu ifade eder. Bu teknolojilerin ve framework'lerin amacı, çeşitli platformlarda ve cihazlarda çalışabilen modern, güvenilir ve performanslı uygulamalar geliştirmeye olanak sağlamaktır.

.NET Platformu: Tanımı, Özellikleri ve Kullanım Alanları

.NET, Microsoft tarafından geliştirilen bir platformdur ve yazılım geliştirme sürecini kolaylaştırmak için bir dizi araç ve teknoloji sunar. “.NET” terimi, “Network Enabled Technologies” kelimelerinin kısaltmasıdır ve aslında bir dizi teknoloji ve framework koleksiyonunu ifade eder. Bu teknolojilerin ve framework’lerin amacı, çeşitli platformlarda ve cihazlarda çalışabilen modern, güvenilir ve performanslı uygulamalar geliştirmeye olanak sağlamaktır.

  1. Common Language Runtime (CLR): .NET’in temel bileşenlerinden biridir. CLR, .NET yazılımının çalıştırılması ve yönetilmesinden sorumludur. Kodun derlenmesinden sonra CLR, kodu çalıştırır, hafızayı yönetir, güvenlik sağlar ve çöp toplama gibi temel görevleri yerine getirir. CLR, birden fazla programlama dilini destekler ve bu dillerde yazılan kodları yönetir.
  2. Base Class Library (BCL): .NET Framework’ün bir parçası olan BCL, geniş bir sınıf kitaplığı koleksiyonudur. BCL, dosya işleme, veritabanı erişimi, ağ iletişimi, güvenlik, veri yapıları ve daha fazlası gibi birçok temel işlevi içerir. Bu sınıflar, yazılım geliştiricilerinin tekrar tekrar kullanabileceği temel yapı taşlarını sağlar.
  3. ASP.NET: Web uygulamaları geliştirmek için kullanılan bir framework’tür. ASP.NET, dinamik ve etkileşimli web siteleri ve web uygulamaları oluşturmak için kullanılır. Web formları veya MVC (Model-View-Controller) mimarisi gibi farklı yaklaşımları destekler.
  4. WinForms ve WPF: Windows masaüstü uygulamaları geliştirmek için kullanılan grafik arayüz (GUI) teknolojileridir. WinForms, basit ve hızlı geliştirme için kullanılan bir framework sağlarken, WPF (Windows Presentation Foundation) daha zengin ve özelleştirilebilir kullanıcı arayüzleri oluşturmak için tasarlanmıştır.
  5. Entity Framework: Veritabanı işlemleri için bir ORM (Object-Relational Mapping) framework’üdür. Entity Framework, veritabanı işlemlerini nesne yönelimli programlama mantığıyla yapmayı sağlar, böylece veritabanı işlemlerini daha kolay ve daha az hata ile gerçekleştirebilirsiniz.
  6. Language Integrated Query (LINQ): .NET programlama dillerinde (C#, VB.NET gibi) SQL benzeri sorguları destekleyen bir teknolojidir. LINQ, veri koleksiyonları üzerinde sorgular oluşturmanıza ve işlemenize olanak tanır, böylece veriye erişimi daha kolay ve daha anlaşılır hale getirir.

.NET platformu, bu ve daha birçok teknoloji ve araçla birlikte gelir ve bu sayede yazılım geliştiricilere çeşitli platformlarda ve cihazlarda çalışabilen modern uygulamalar geliştirmeleri için birçok seçenek sunar.

Console Uygulaması Geliştirme

1. Konsol Uygulaması Nedir? Konsol uygulamaları, kullanıcıdan girdi almak için metin tabanlı bir arayüz kullanan ve genellikle terminal veya komut istemcisi gibi bir arayüzde çalışan uygulamalardır. Bu tür uygulamalar, kullanıcıdan girdi alır, bu girdiyi işler, sonuçları ekrana yazdırır veya başka bir şekilde kullanır. C# ve .NET’te, konsol uygulamaları temel algoritma ve programlama becerilerini öğrenmek için sıklıkla kullanılır.

2. Konsol Uygulaması Oluşturma Adımları:

  • Proje Oluşturma: Visual Studio veya Visual Studio Code gibi bir geliştirme ortamında yeni bir C# projesi oluşturulur. “Console Application” proje şablonu seçilerek başlanır.
  • Ana Sınıf ve Main Metodu: Konsol uygulamaları genellikle bir ana sınıf içerir. Bu sınıf, genellikle “Program” olarak adlandırılır ve “Main” adında bir metodu içerir. Main metodu, uygulamanın başlangıç noktasıdır ve buradan kodunuz çalışmaya başlar.
  • Kod Yazma: Main metodu içinde, uygulamanızın yapmasını istediğiniz işlemleri kod olarak yazarsınız. Kullanıcıdan girdi alabilir, hesaplamalar yapabilir, koşullar ve döngüler kullanabilir ve sonuçları ekrana yazdırabilirsiniz.
  • Çalıştırma ve Test Etme: Kodunuzu yazdıktan sonra, konsol uygulamanızı derleyip çalıştırarak test edersiniz. Bu adım, uygulamanızın doğru çalışıp çalışmadığını kontrol etmek için önemlidir.

3. Konsol Uygulaması Örnekleri:

  • Basit Hesap Makinesi: Kullanıcıdan iki sayı alarak toplama, çıkarma, çarpma veya bölme işlemlerini gerçekleştiren bir konsol uygulaması.
  • Dosya İşlemleri: Belirli bir dizindeki dosyaları listeleme, dosya oluşturma, silme veya dosya içeriğini okuma gibi dosya işlemleri gerçekleştiren bir konsol uygulaması.
  • Metin İşlemleri: Kullanıcıdan metin alarak metin işlemleri yapma, metin uzunluğunu bulma, metin içinde arama yapma veya metinleri birleştirme gibi işlemleri gerçekleştiren bir konsol uygulaması.

4. Özet: Konsol uygulamaları, temel programlama becerilerini öğrenmek ve anlamak için harika bir araçtır. Bu tür uygulamaları oluşturarak, temel C# ve .NET becerilerini geliştirebilir ve daha karmaşık uygulamaları oluşturmak için bir temel oluşturabilirsiniz.

Konsol uygulamaları, temel programlama kavramlarını anlamak ve uygulamak için harika bir yol sunar.

1. Proje Oluşturma:

  • Visual Studio gibi bir IDE kullanarak yeni bir C# Console Application projesi oluşturun.
  • Proje adını ve konumunu belirleyin ve oluşturun.

2. Ana Sınıf ve Main Metodu:

  • Oluşturulan proje, genellikle Program.cs adında bir dosyada bulunan bir ana sınıf içerir.
  • Bu sınıf, genellikle “Program” olarak adlandırılır ve “Main” adında bir metodu içerir.
  • Main metodu, uygulamanın başlangıç noktasıdır ve burada kodunuz çalışmaya başlar.

3. Kod Yazma:

  • Main metodu içinde, uygulamanızın yapmasını istediğiniz işlemleri kod olarak yazın.
  • Kullanıcıdan girdi almak için Console.ReadLine() metodunu kullanabilirsiniz.
  • Aldığınız girdiyi işleyebilir ve sonuçları ekrana yazdırabilirsiniz.

Örnek bir konsol uygulaması şu şekilde olabilir:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Lütfen adınızı girin:");
        string ad = Console.ReadLine();

        Console.WriteLine($"Merhaba, {ad}! Hoş geldiniz.");

        Console.WriteLine("Lütfen yaşınızı girin:");
        int yas = Convert.ToInt32(Console.ReadLine());

        if (yas < 18)
        {
            Console.WriteLine("Üzgünüz, bu uygulama sadece 18 yaşından büyükler için.");
        }
        else
        {
            Console.WriteLine("Hoş geldiniz. Uygulamamızı kullanmaya devam edebilirsiniz.");
        }
    }
}

Bu kod örneği, kullanıcıdan adını ve yaşını alan ve yaşa bağlı olarak bir karşılama mesajı gösteren basit bir konsol uygulamasını göstermektedir.

4. Çalıştırma ve Test Etme:

  • Kodunuzu yazdıktan sonra, uygulamanızı derleyip çalıştırarak test edin.
  • Konsol penceresinde programınızın doğru çalışıp çalışmadığını kontrol edin.

Konsol uygulamaları, C# ve .NET’in temelini oluşturur ve daha karmaşık uygulamaları geliştirmek için sağlam bir temel sunar. Bu uygulamaları oluşturarak, programlama becerilerinizi geliştirebilir ve daha fazla deneyim kazanabilirsiniz.

Basic .NET veri tipleri

1. Temel Veri Tipleri:

  • int: Tam sayıları temsil eder. Örneğin: 5, -10, 1000 gibi.
  • float ve double: Ondalıklı sayıları temsil eder. float, tek hassasiyetli, double ise çift hassasiyetli ondalıklı sayıları saklar.
  • bool: Mantıksal değerleri temsil eder. True veya False olabilir.
  • char: Tek bir karakteri temsil eder. Örneğin: ‘a’, ‘b’, ‘*’, ‘?’ gibi.
  • string: Metin dizilerini temsil eder. Örneğin: “Merhaba”, “Dünya”, “123” gibi.
  • DateTime: Tarih ve saat değerlerini temsil eder. Örneğin: 2022-02-17 15:30 gibi.

2. Veri Türü Dönüşümleri: C# ve .NET, farklı veri türleri arasında dönüşümleri destekler. Bu dönüşümler otomatik veya açık olarak gerçekleştirilebilir. Örneğin:

int sayi = 5;
float ondalikliSayi = sayi; // Otomatik dönüşüm
double digerOndalikliSayi = 10.5;
int tamSayi = (int)digerOndalikliSayi; // Açık dönüşüm (tip dönüşüm operatörü)

3. Kod Örnekleri:

using System;

class Program
{
    static void Main()
    {
        // Temel veri tipleri kullanımı
        int sayi = 10;
        float ondalikliSayi = 3.14f;
        bool dogruMu = true;
        char karakter = 'A';
        string metin = "Merhaba";

        // Veri türü dönüşümleri
        int yeniSayi = Convert.ToInt32(ondalikliSayi);
        double yeniOndalikliSayi = sayi; // Otomatik dönüşüm

        // Tarih ve saat veri tipi kullanımı
        DateTime simdikiZaman = DateTime.Now;
        Console.WriteLine("Şu anki zaman: " + simdikiZaman);
    }
}

Bu kod örneği, temel .NET veri tiplerini kullanarak değişkenler oluşturur ve bazı dönüşümler gerçekleştirir. Ayrıca DateTime veri tipini kullanarak şu anki zamanı alır ve ekrana yazdırır.

4. Özet: Basic .NET veri tipleri, C# ve .NET programlama dilinin temelini oluşturur. Bu veri tiplerini kullanarak değişkenler oluşturabilir, veri saklayabilir ve işleyebilirsiniz. Veri türü dönüşümleri sayesinde, farklı veri tipleri arasında dönüşümler gerçekleştirebilirsiniz. Bu temel kavramları anlamak, daha karmaşık programlama görevlerini gerçekleştirmek için önemlidir.

.NET garbage collection

“.NET Garbage Collection (Çöp Toplama)”, .NET platformunda bellek yönetimini sağlayan önemli bir özelliktir. Bu mekanizma, programın çalışma zamanında kullanılmayan ve artık erişilemeyen nesneleri tanımlar, bu nesnelerin bellekten kaldırılmasını sağlar ve böylece bellek sızıntılarını önler.

1. Garbage Collection Nedir?

  • .NET ortamında Garbage Collection (GC), programın çalışma zamanında kullanılan belleği yönetmek için otomatik bir süreçtir.
  • GC, artık erişilemeyen nesneleri tespit eder ve bunları bellekten temizler. Bu sayede bellek sızıntıları önlenir ve programın bellek kullanımı optimize edilir.

2. Çalışma Prensibi:

  • .NET programı çalıştığında, GC, bellekteki tüm nesneleri izler ve bunların erişilebilirliğini kontrol eder.
  • GC, erişilemeyen nesneleri tespit etmek için bir dizi algoritma kullanır. Bu algoritmalar, bir nesnenin artık erişilebilir olup olmadığını belirlemek için referansları ve nesne graflarını analiz eder.
  • Erişilemeyen nesneler tespit edildiğinde, GC bu nesneleri bellekten kaldırır ve boşalan belleği yeniden kullanıma açar.

3. GC’nin Avantajları:

  • Bellek sızıntılarını önler: GC, artık erişilemeyen nesneleri otomatik olarak temizler, böylece bellek sızıntılarına neden olan nesnelerin bellekte birikmesini engeller.
  • Bellek yönetimini kolaylaştırır: Geliştiricilerin bellek yönetimiyle ilgilenmesine gerek kalmaz. GC, belleği otomatik olarak yönetir, böylece geliştiriciler kodlarını daha verimli bir şekilde yazabilirler.

4. Örnek Kod:

using System;

class Program
{
    static void Main()
    {
        // Büyük miktarda bellek tüketen bir nesne oluşturma
        int[] data = new int[1000000];

        // Artık erişilemeyen nesne oluşturma
        int[] unusedData = new int[1000000];

        // unusedData'nın referansını null olarak ayarlama
        unusedData = null;

        // GC'yi zorlamak için GC.Collect metodunu çağırma
        GC.Collect();

        // GC'den bellekten nesneleri temizlemesini isteme
        GC.WaitForPendingFinalizers();

        // Programın devam etmesi
        Console.WriteLine("Garbage Collection tamamlandı.");
    }
}

Bu kod örneği, GC’nin nasıl kullanılabileceğini göstermektedir. unusedData dizisinin referansını null olarak ayarlayarak artık erişilemeyen bir nesne oluşturulur. Ardından GC.Collect() ve GC.WaitForPendingFinalizers() metotları çağrılarak bellek temizlenir.

5. Sonuç:

Garbage Collection, .NET platformunda bellek yönetiminin önemli bir parçasıdır. Bu mekanizma, bellek sızıntılarını önler ve geliştiricilere bellek yönetimi konusunda yardımcı olur. Ancak, etkin kullanımda performans üzerinde bazı etkilere neden olabilir, bu nedenle dikkatli bir şekilde kullanılmalıdır.

Working with String

String Interpolation

“String Interpolation”, C# ve .NET programlama dilinde metin dizileri oluşturmanın modern ve etkili bir yoludur. Bu yöntem, metin içine değişken veya ifadelerin doğrudan yerleştirilmesine olanak tanır, böylece daha okunaklı ve esnek kod yazmayı sağlar.

1. String Interpolation Nedir?

  • String interpolation, metin dizileri oluşturmanın bir yoludur, bu yöntemde değişkenler veya ifadeler doğrudan metin içine yerleştirilir.
  • String interpolation, $”…” sözdizimi kullanılarak gerçekleştirilir, bu şekilde metin içindeki değişkenler süslü parantezler içine alınır ve değerleri doğrudan yerleştirilir.

2. Avantajları:

  • Kodun daha okunaklı olmasını sağlar: String interpolation kullanarak, metin ve değişkenler arasındaki ilişki daha açık bir şekilde ifade edilir.
  • Hata yapma olasılığını azaltır: String interpolation, “+” operatörü kullanarak metinleri birleştirmekten daha az hata yapma olasılığı sağlar.
  • Daha esnek ve kolay kullanım sağlar: String interpolation kullanarak, metin dizilerini daha hızlı ve daha esnek bir şekilde oluşturabilirsiniz.

3. Kod Örnekleri:

// String interpolation kullanmadan metin dizisi oluşturma
string ad = "Ahmet";
int yas = 30;
string mesaj = "Merhaba, " + ad + "! Yaşınız " + yas + " yaşındadır.";

// String interpolation kullanarak metin dizisi oluşturma
string interpolationMesaj = $"Merhaba, {ad}! Yaşınız {yas} yaşındadır.";

Yukarıdaki örnekte, $”…” sözdizimini kullanarak string interpolation yapılır. Süslü parantezler içine alınan değişkenler doğrudan metin içine yerleştirilir.

// String interpolation ile ifadeleri de kullanma
double fiyat = 99.99;
int adet = 3;
string urunAdi = "Telefon";

string faturaBilgisi = $"Toplam fiyat: {fiyat * adet:C2}. Ürün: {urunAdi}, Adet: {adet}";

Bu örnekte, string interpolation ile ifadeler de kullanılır. Süslü parantezler içine alınan ifadeler doğrudan metin içine yerleştirilir.

4. Özet:

String interpolation, C# ve .NET programlama dilinde metin dizileri oluşturmanın modern ve etkili bir yoludur. Bu yöntem, metin ve değişkenler arasındaki ilişkiyi daha açık bir şekilde ifade etmenizi sağlar ve kodun daha okunaklı olmasını sağlar. String interpolation kullanarak, kodunuzu daha hızlı, daha esnek ve daha kolay anlaşılabilir hale getirebilirsiniz.

String formatting

String formatting, C# ve .NET programlama dilinde metin dizilerini biçimlendirmenin ve düzenlemenin bir yoludur. Bu yöntem, metin içinde değişkenlerin veya ifadelerin belirli bir biçimde gösterilmesini sağlar. İşte bu konuyu derinlemesine anlatan bir açıklama:

1. String Formatting Nedir?

  • String formatting, metin dizilerinin içine değişkenlerin veya ifadelerin belirli bir biçimde yerleştirilmesini sağlar.
  • Bu yöntem, string.Format() metodu veya string dizelerinin Format metodu kullanılarak gerçekleştirilir.
  • Biçimlendirme, belirli bir desen veya kalıba göre metin içine değişkenlerin veya ifadelerin yerleştirilmesini sağlar.

2. Biçimlendirme Türleri:

  • String.Format() Metodu: Bu yöntem, belirli bir desene veya kalıba göre metin dizilerini biçimlendirir. Süslü parantezler içindeki indeks numaraları veya adlar, biçimlendirme işlemi sırasında karşılık gelen değişkenlerle değiştirilir.
  • String Interpolation: Önceki açıkladığımız gibi, $”…” sözdizimi kullanılarak string interpolation yapılabilir. Bu yöntem de string formatting’i sağlar ve daha okunaklı bir sözdizimi sunar.

3. Kod Örnekleri:

// String.Format() kullanarak biçimlendirme
string ad = "Ahmet";
int yas = 30;
string mesaj = string.Format("Merhaba, {0}! Yaşınız {1} yaşındadır.", ad, yas);

// String interpolation kullanarak biçimlendirme
string interpolationMesaj = $"Merhaba, {ad}! Yaşınız {yas} yaşındadır.";

Yukarıdaki örnekte, string.Format() metodu kullanılarak ve $”…” sözdizimiyle string interpolation kullanılarak biçimlendirme yapılır.

// String.Format() ile biçimlendirme
double fiyat = 99.99;
int adet = 3;
string urunAdi = "Telefon";

string faturaBilgisi = string.Format("Toplam fiyat: {0:C2}. Ürün: {1}, Adet: {2}", fiyat * adet, urunAdi, adet);

Bu örnekte, string.Format() metodu kullanılarak fatura bilgileri biçimlendirilir. {0:C2} ile fiyatı para birimi biçiminde gösteririz.

4. Özet:

String formatting, metin dizilerini biçimlendirmenin ve düzenlemenin bir yoludur. Bu yöntem, metin içinde değişkenlerin veya ifadelerin belirli bir biçimde gösterilmesini sağlar. String.Format() metodu veya string interpolation kullanarak, metin dizilerini belirli bir desen veya kalıba göre biçimlendirebilirsiniz. Bu şekilde, kodunuz daha okunaklı ve düzenli hale gelir.

String manipulation

String manipulation, C# ve .NET programlama dilinde metinlerin değiştirilmesi, düzenlenmesi ve işlenmesi anlamına gelir. Bu işlem, metinlerin parçalanması, birleştirilmesi, büyütülmesi, küçültülmesi, kırpması, dönüştürülmesi ve arama işlemlerini içerebilir.

1. Metin İşleme Nedir?

  • Metin işleme, metinlerin değiştirilmesi, düzenlenmesi ve işlenmesidir. Bu işlem, metinlerin belirli koşullara göre parçalanması, birleştirilmesi, dönüştürülmesi ve filtrelenmesi gibi çeşitli işlemleri içerebilir.

2. Metin İşleme İşlemleri:

  • Parçalama (Substring): Bir metnin belirli bir bölümünü almak için kullanılır. Substring metodu veya indeksleme kullanılarak gerçekleştirilir.
  • Birleştirme (Concatenation): Birden fazla metni birleştirmek için kullanılır. “+” operatörü veya string.Concat metodu kullanılarak gerçekleştirilir.
  • Büyütme (ToUpper) ve Küçültme (ToLower): Bir metni büyük harflere veya küçük harflere dönüştürmek için kullanılır.
  • Kırpmak (Trim): Bir metnin başındaki ve sonundaki boşlukları kaldırmak için kullanılır.
  • Dönüştürme (Replace): Belirli bir karakteri veya karakter dizisini başka bir karakter veya karakter dizisi ile değiştirmek için kullanılır.
  • Arama ve Değiştirme (Replace ve Regex): Bir metin içinde belirli bir deseni aramak ve değiştirmek için kullanılır.

3. Kod Örnekleri:

// Parçalama (Substring)
string metin = "Merhaba dünya!";
string altMetin = metin.Substring(8); // "dünya!"

// Birleştirme (Concatenation)
string ad = "John";
string soyad = "Doe";
string tamAd = ad + " " + soyad; // "John Doe"

// Büyütme ve Küçültme
string buyukMetin = metin.ToUpper(); // "MERHABA DÜNYA!"
string kucukMetin = metin.ToLower(); // "merhaba dünya!"

// Kırpmak (Trim)
string metin2 = "  Merhaba dünya!   ";
string kırpılmışMetin = metin2.Trim(); // "Merhaba dünya!"

// Dönüştürme (Replace)
string yeniMetin = metin.Replace("dünya", "evren"); // "Merhaba evren!"

// Arama ve Değiştirme
string metin3 = "Bugün hava çok güzel.";
string yeniMetin2 = metin3.Replace("güzel", "harika"); // "Bugün hava çok harika."

Yukarıdaki örneklerde, çeşitli metin işleme işlemleri gerçekleştirilmiştir. Parçalama, birleştirme, büyütme, küçültme, kırpmak, dönüştürme ve arama/değiştirme işlemleri örneklenmiştir.

4. Özet:

Metin işleme, C# ve .NET programlama dilinde metinlerin değiştirilmesi, düzenlenmesi ve işlenmesini sağlar. Bu işlem, çeşitli işlemleri içerebilir, bunlar metinlerin parçalanması, birleştirilmesi, büyütülmesi, küçültülmesi, kırpması, dönüştürülmesi ve arama/değiştirme işlemleridir. Metin işleme işlemleri, metin tabanlı uygulamalarda oldukça yaygın olarak kullanılır ve metin verilerinin etkili bir şekilde yönetilmesini sağlar.

String searching

String searching, bir metin içinde belirli bir desen veya alt dizeyi arama işlemidir. Bu işlem, bir metinde belirli bir deseni veya alt dizeyi bulmayı ve bu desenin veya alt dizenin konumunu belirlemeyi içerir.

1. String Searching Nedir?

  • String searching, bir metin içinde belirli bir deseni veya alt dizeyi arama işlemidir.
  • Bu işlem, metin içinde belirli bir desenin veya alt dizenin var olup olmadığını kontrol etmek ve varsa konumunu belirlemek için kullanılır.

2. String Searching İşlemleri:

  • IndexOf() Metodu: Bir metin içinde belirli bir deseni veya alt dizeyi arar ve bulduğu ilk konumun indisini döndürür.
  • LastIndexOf() Metodu: Bir metin içinde belirli bir deseni veya alt dizeyi arar ve bulduğu son konumun indisini döndürür.
  • Contains() Metodu: Bir metin içinde belirli bir desenin veya alt dizenin var olup olmadığını kontrol eder.
  • StartsWith() ve EndsWith() Metodları: Bir metnin belirli bir desenle başlayıp başlamadığını veya belirli bir desenle bittiğini kontrol eder.
  • Regex Kütüphanesi: Daha karmaşık arama işlemleri için Regular Expressions (Düzenli İfadeler) kullanılabilir.

3. Kod Örnekleri:

// IndexOf() Metodu
string metin = "Bu bir deneme metnidir.";
int pozisyon = metin.IndexOf("deneme"); // 7

// LastIndexOf() Metodu
int sonPozisyon = metin.LastIndexOf("i"); // 23

// Contains() Metodu
bool iceriyorMu = metin.Contains("bir"); // true

// StartsWith() ve EndsWith() Metodları
bool baslangic = metin.StartsWith("Bu"); // true
bool son = metin.EndsWith("metnidir."); // true

Yukarıdaki örnekte, çeşitli string searching işlemleri gerçekleştirilmiştir. IndexOf(), LastIndexOf(), Contains(), StartsWith() ve EndsWith() metotları kullanılarak metin içinde belirli desenlerin aranması ve kontrol edilmesi sağlanmıştır.

4. Özet:

String searching, bir metin içinde belirli bir desen veya alt dizeyi arama işlemidir. C# ve .NET platformunda bu işlemi gerçekleştirmek için IndexOf(), LastIndexOf(), Contains(), StartsWith() ve EndsWith() gibi çeşitli metotlar kullanılabilir. Bu metotlar, metin tabanlı uygulamalarda belirli desenleri aramak ve işlemek için yaygın olarak kullanılır. Ayrıca, daha karmaşık arama işlemleri için Regular Expressions (Düzenli İfadeler) kullanılabilir.

Using Numbers and Date

Parsing numbers

“Parsing numbers”, bir metin dizisini sayısal bir değere dönüştürme işlemidir. Bu işlem, kullanıcıdan alınan metinsel girdileri sayısal veri tiplerine çevirmek veya dış kaynaklardan (dosya, veritabanı vb.) okunan metin verilerini sayısal formata dönüştürmek için sıkça kullanılır.

1. Parsing Nedir?

  • Parsing, bir metin dizisini, belirli bir veri türüne dönüştürme işlemidir. Bu durumda, metin olarak temsil edilen sayıları sayısal veri tiplerine çevirmeyi ifade eder.

2. Parsing İşlemi:

  • int.TryParse(): Bir metin dizisini bir tamsayıya (int) dönüştürür. Dönüşüm başarılıysa true döner, aksi halde false döner.
  • double.TryParse(): Bir metin dizisini bir ondalıklı sayıya (double) dönüştürür. Dönüşüm başarılıysa true döner, aksi halde false döner.
  • float.TryParse(): Bir metin dizisini bir tek hassasiyetli ondalıklı sayıya (float) dönüştürür. Dönüşüm başarılıysa true döner, aksi halde false döner.
  • decimal.TryParse(): Bir metin dizisini bir ondalıklı sayıya (decimal) dönüştürür. Dönüşüm başarılıysa true döner, aksi halde false döner.

3. Kod Örnekleri:

// Tamsayı (int) parsing
string metin1 = "123";
int sayi;
bool basarili1 = int.TryParse(metin1, out sayi);

if (basarili1)
{
    Console.WriteLine("Dönüşüm başarılı: " + sayi);
}
else
{
    Console.WriteLine("Dönüşüm başarısız.");
}

// Ondalıklı sayı (double) parsing
string metin2 = "3.14";
double ondalikliSayi;
bool basarili2 = double.TryParse(metin2, out ondalikliSayi);

if (basarili2)
{
    Console.WriteLine("Dönüşüm başarılı: " + ondalikliSayi);
}
else
{
    Console.WriteLine("Dönüşüm başarısız.");
}

Yukarıdaki örnekte, TryParse metotları kullanılarak bir metin dizisi bir sayısal veri türüne dönüştürülüyor. Dönüşüm başarılıysa, dönüştürülen değer kullanılır, aksi takdirde hata durumuyla başa çıkılabilir.

4. Özet:

Parsing, bir metin dizisini belirli bir veri türüne dönüştürme işlemidir. C# ve .NET platformunda, bu işlemi gerçekleştirmek için TryParse metodları kullanılır. Bu metodlar, bir metin dizisini dönüştürmeye çalışır ve dönüşüm başarılı ise true döner, aksi halde false döner. Bu sayede, hatalı girişlerle başa çıkabilir ve güvenli bir şekilde metinsel verileri sayısal formata dönüştürebilirsiniz.

Formatting numerical data

“Formatting numerical data” konusu, sayısal verilerin belirli bir formata göre biçimlendirilmesini ve düzenlenmesini sağlar. Bu, sayıları istenen görünüme getirmek için kullanılır, örneğin, para birimi sembolü eklemek, ondalık basamakları belirli bir hassasiyete yuvarlamak veya sayıları binlik ayırıcı ile biçimlendirmek gibi.

1. Sayısal Veri Biçimlendirme Nedir?

  • Sayısal veri biçimlendirme, sayıları belirli bir formata göre düzenleme ve biçimlendirme işlemidir.
  • Bu işlem, sayıları belirli bir görünüm veya stile getirmek için kullanılır, örneğin, para birimi sembolü eklemek, ondalık basamakları belirli bir hassasiyete yuvarlamak veya sayıları binlik ayırıcı ile biçimlendirmek gibi.

2. Sayı Biçimlendirme Seçenekleri:

  • Currency (Para Birimi) Biçimi: Sayıları para birimi formatına göre biçimlendirir. Örneğin, “$”, “TL” gibi para birimi sembollerini ekler.
  • Decimal (Ondalık) Biçimi: Sayıları ondalık basamaklara göre biçimlendirir. Örneğin, belirli bir hassasiyete kadar ondalık basamakları yuvarlar veya ondalık basamak sayısını ayarlar.
  • Thousands Separator (Binlik Ayırıcı): Sayıları binler basamağına göre biçimlendirir ve okunabilirliği artırmak için binlik ayırıcı ekler.
  • Custom (Özel) Biçimler: Sayıları özel bir biçimde düzenlemek için özel biçimler kullanılabilir. Örneğin, belirli bir desene göre sayıları biçimlendirmek için özel bir biçim belirtilebilir.

3. Kod Örnekleri:

// Currency (Para Birimi) Biçimi
decimal fiyat = 1234.567m;
string fiyatMetni = string.Format("{0:C}", fiyat); // $1,234.57

// Decimal (Ondalık) Biçimi
double oran = 0.12345;
string oranMetni = oran.ToString("0.00%"); // 12.35%

// Thousands Separator (Binlik Ayırıcı)
int sayi = 1234567;
string sayiMetni = sayi.ToString("N"); // 1,234,567

// Custom (Özel) Biçimler
int puan = 85;
string puanMetni = puan.ToString("##.##"); // 85

Yukarıdaki örnekte, çeşitli sayısal veri biçimlendirme seçenekleri gösterilmiştir. Currency, Decimal, Thousands Separator ve Custom biçimler kullanılarak sayılar belirli bir formata göre düzenlenmiştir.

4. Özet:

Sayısal veri biçimlendirme, sayıları belirli bir formata göre düzenleme ve biçimlendirme işlemidir. Bu işlem, sayıları okunabilir ve istenen görünüme getirmek için kullanılır. Currency, Decimal, Thousands Separator ve Custom gibi çeşitli biçimlendirme seçenekleri, sayıları belirli bir formata göre düzenlemek için kullanılabilir. Bu sayede, sayıları istenen biçimde göstermek ve kullanıcılarla etkileşimde bulunmak daha kolay hale gelir.

Using the DateTime class

“DateTime” sınıfı, C# ve .NET platformunda tarih ve saat bilgisini temsil etmek için kullanılan bir sınıftır. Bu sınıf, tarihleri oluşturmak, biçimlendirmek, işlemek, aritmetik operasyonlar yapmak ve tarih aralıklarını hesaplamak için bir dizi yöntem ve özellik sağlar.

1. DateTime Sınıfı Nedir?

  • DateTime sınıfı, C# ve .NET platformunda tarih ve saat bilgisini temsil etmek için kullanılır.
  • Bu sınıf, tarih ve saat bilgilerini depolamak için kullanılan bir dizi özelliği ve bu bilgilerle çalışmak için bir dizi yöntemi içerir.

2. DateTime Nesnesi Oluşturma:

// Şu anki tarih ve saat bilgisini almak için:
DateTime simdikiZaman = DateTime.Now;

// Belirli bir tarih ve saat bilgisini belirtmek için:
DateTime dogumGunu = new DateTime(1990, 5, 15);

3. DateTime Biçimlendirme:

// Tarihi belirli bir biçime göre biçimlendirmek için:
string tarihMetni = simdikiZaman.ToString("yyyy-MM-dd HH:mm:ss");

// Tarihi özel bir biçime göre biçimlendirmek için:
string ozelTarihMetni = simdikiZaman.ToString("dddd, dd MMMM yyyy");

4. DateTime Özellikleri ve Yöntemleri:

  • Add() ve Subtract() Metotları: Belirli bir tarih veya zaman aralığını eklemek veya çıkarmak için kullanılır.
  • CompareTo() Metodu: İki DateTime nesnesini karşılaştırmak için kullanılır.
  • Equals() Metodu: İki DateTime nesnesinin eşit olup olmadığını kontrol etmek için kullanılır.
  • Parse() ve TryParse() Metotları: Bir metin dizisinden DateTime nesnesi oluşturmak için kullanılır.

5. Kod Örnekleri:

// Belirli bir tarihe belirli bir zaman aralığını eklemek
DateTime gelecekZaman = simdikiZaman.AddHours(3);

// İki tarih arasındaki farkı hesaplamak
TimeSpan fark = gelecekZaman - simdikiZaman;

// İki tarihi karşılaştırmak
int karsilastirmaSonucu = simdikiZaman.CompareTo(dogumGunu);

// Bir metin dizisinden DateTime nesnesi oluşturmak
string tarihMetni = "2023-12-31";
DateTime sonTarih;
bool basarili = DateTime.TryParse(tarihMetni, out sonTarih);

6. Özet:

DateTime sınıfı, C# ve .NET platformunda tarih ve saat bilgisini temsil etmek için kullanılır. Bu sınıf, tarih ve saat bilgilerini depolamak, biçimlendirmek, işlemek ve aritmetik operasyonlar yapmak için bir dizi yöntem ve özellik sağlar. DateTime sınıfı, tarih ve saatle ilgili pek çok yaygın işlemi kolaylıkla gerçekleştirmenizi sağlar ve C# programlamasında oldukça önemli bir yer tutar.

Formatting dates and times

“Formatting dates and times” konusu, tarih ve saat bilgilerini istenen biçimlere dönüştürmenin ve görüntülemenin bir yolunu sağlar. Bu, tarih ve saat bilgilerini okunabilir ve kullanılabilir bir formata getirmek için kullanılır. Örneğin, tarih ve saat bilgilerini belirli bir desenle biçimlendirmek, saat dilimini eklemek veya belirli bir dilde tarih ve saat formatını ayarlamak gibi.

1. Tarih ve Saat Biçimlendirme Nedir?

  • Tarih ve saat biçimlendirme, tarih ve saat bilgilerini belirli bir formata dönüştürme ve görüntüleme işlemidir.
  • Bu işlem, tarih ve saat bilgilerini okunabilir ve kullanılabilir bir formata getirmek için kullanılır.

2. Tarih ve Saat Biçimlendirme Seçenekleri:

  • Standart Tarih ve Saat Biçimleri: .NET Framework, yaygın olarak kullanılan bir dizi standart tarih ve saat biçimi sağlar. Örneğin, “yyyy-MM-dd HH:mm:ss” veya “MM/dd/yyyy” gibi.
  • Özel Tarih ve Saat Biçimleri: Geliştiriciler, DateTime.ToString() metodu kullanarak özel tarih ve saat biçimlerini belirleyebilirler. Örneğin, “dddd, dd MMMM yyyy HH:mm:ss” gibi.
  • Kültürel Biçimlendirme: Tarih ve saat biçimlendirirken, belirli bir kültüre göre formatlamak önemlidir. .NET Framework, belirli bir dil ve bölge için tarih ve saat biçimlerini otomatik olarak ayarlamak için CultureInfo sınıfını sağlar.

3. Kod Örnekleri:

// Standart Tarih ve Saat Biçimleri
DateTime now = DateTime.Now;
string shortDateFormat = now.ToString("d"); // Kısa tarih biçimi: 2/17/2024
string longDateFormat = now.ToString("D"); // Uzun tarih biçimi: Sunday, February 17, 2024

// Özel Tarih ve Saat Biçimleri
string customFormat = now.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Özel biçim: Sunday, 17 February 2024 16:30:00

// Kültürel Biçimlendirme
string cultureFormattedDate = now.ToString("D", new CultureInfo("fr-FR")); // Fransız kültürüne göre: dimanche 17 février 2024

Yukarıdaki örnekte, tarih ve saat bilgileri farklı biçimlere dönüştürülmüştür. Standart ve özel biçimlendirme kullanılarak tarih ve saat bilgileri belirli bir formata getirilmiş, ayrıca kültürel biçimlendirme ile belirli bir dil ve bölgeye göre biçimlendirme yapılmıştır.

4. Özet:

Tarih ve saat biçimlendirme, tarih ve saat bilgilerini belirli bir formata dönüştürme ve görüntüleme işlemidir. Standart biçimler, özel biçimler ve kültürel biçimlendirme gibi çeşitli seçenekler mevcuttur. Bu yöntemlerle, tarih ve saat bilgilerini istenen şekilde biçimlendirebilir ve kullanıcılarla etkileşimde bulunabilirsiniz.

Parsing dates

Tarihleri analiz etmek veya parçalamak, bir metin dizesini DateTime türüne dönüştürmek için kullanılan bir işlemdir. Bu işlem, kullanıcı girdilerini veya dış kaynaklardan gelen metin verilerini (dosyalar, veritabanları vb.) tarih ve saat nesnelerine dönüştürmek için yaygın olarak kullanılır.

1. Tarih Parçalama Nedir?

  • Tarih parçalama, bir metin dizesini DateTime türüne dönüştürme işlemidir. Bu işlem, bir tarih ve saat değerini içeren bir metin dizesini alır ve bu değeri DateTime nesnesine dönüştürür.

2. Tarih Parçalama İşlemleri:

  • DateTime.Parse() Metodu: Bir metin dizesini DateTime türüne dönüştürür. Metot, dönüşümü gerçekleştirebilirse, dönüştürülen DateTime nesnesini döndürür. Ancak, hatalı bir biçimde biçimlendirilmiş bir girişle karşılaşırsa, bir ArgumentException fırlatır.
  • DateTime.TryParse() Metodu: Bir metin dizesini DateTime türüne dönüştürür. Ancak, dönüşüm başarılı olamazsa, hata fırlatmak yerine false değeri döndürür ve çıktı parametresi olarak dönüştürülen DateTime nesnesini içermez.

3. Kod Örnekleri:

// DateTime.Parse() Metodu
string tarihMetni = "02/17/2024";
DateTime tarih1 = DateTime.Parse(tarihMetni);

// DateTime.TryParse() Metodu
string gecersizTarihMetni = "2024-17-02";
DateTime tarih2;
bool basarili = DateTime.TryParse(gecersizTarihMetni, out tarih2);

if (basarili)
{
    Console.WriteLine("Dönüşüm başarılı: " + tarih2);
}
else
{
    Console.WriteLine("Geçersiz tarih formatı.");
}

Yukarıdaki örnekte, tarih parçalama işlemleri iki farklı yöntemle gerçekleştirilmiştir. DateTime.Parse() metodu kullanılarak bir metin dizesi DateTime türüne dönüştürülürken, DateTime.TryParse() metodu kullanılarak başarısız bir dönüşüm durumunda nasıl bir işlem yapılabileceği gösterilmiştir.

4. Özet:

Tarih parçalama, bir metin dizesini DateTime türüne dönüştürme işlemidir. DateTime.Parse() ve DateTime.TryParse() gibi yöntemlerle bu işlem gerçekleştirilir. Bu işlem, kullanıcı girdilerini veya dış kaynaklardan gelen metin verilerini tarih ve saat nesnelerine dönüştürmek için yaygın olarak kullanılır.

Working with files

Creating files

Dosya oluşturma işlemi, C# ve .NET platformunda dosya sisteminde yeni bir dosya oluşturmayı içerir. Bu işlem, bir dosya adı ve isteğe bağlı olarak dosya içeriği belirtilerek gerçekleştirilebilir.

1. Dosya Oluşturma Nedir?

  • Dosya oluşturma, bir dosya sisteminde yeni bir dosya oluşturma işlemidir. Bu işlem, belirtilen bir dosya adıyla yeni bir dosya oluşturmayı içerir.

2. Dosya Oluşturma İşlemi:

  • File.Create() Metodu: Bu yöntem, belirtilen bir dosya yolunda yeni bir dosya oluşturur ve bu dosyanın bir FileStream nesnesini döndürür. Dosya oluşturulduktan sonra, FileStream nesnesi üzerinden dosyaya yazma ve okuma işlemleri gerçekleştirilebilir.

3. Kod Örneği:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = @"C:\Users\Kullanici\Documents\yeniDosya.txt";

        try
        {
            // Dosya oluşturma
            FileStream dosya = File.Create(dosyaYolu);
            dosya.Close(); // Dosyayı kapat

            Console.WriteLine("Dosya oluşturuldu: " + dosyaYolu);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Hata oluştu: " + ex.Message);
        }
    }
}

Yukarıdaki örnekte, File.Create() metodu kullanılarak yeni bir dosya oluşturulmuştur. Daha sonra dosya yolu belirtilmiş ve dosya oluşturulmuştur. Oluşturulan dosya, FileStream nesnesiyle birlikte işlenmiştir. Hata durumları try-catch blokları içinde ele alınmıştır.

4. Özet:

Dosya oluşturma işlemi, C# ve .NET platformunda yeni bir dosya oluşturma işlemidir. File.Create() metodu kullanılarak bu işlem gerçekleştirilir. Oluşturulan dosya daha sonra FileStream nesnesiyle işlenir ve dosyaya yazma ve okuma işlemleri gerçekleştirilir. Hata durumları uygun şekilde ele alınmalıdır.

Reading and writing files

Dosya okuma ve yazma, C# ve .NET platformunda dosyalardan veri okuma ve dosyalara veri yazma işlemlerini ifade eder. Bu işlemler, FileStream ve StreamReader/StreamWriter gibi sınıflar aracılığıyla gerçekleştirilir.

1. Dosya Okuma ve Yazma Nedir?

  • Dosya Okuma: Bir dosyadan veri okuma işlemidir. Bu işlem, belirtilen bir dosyadan veri okuyarak programın belleğine aktarılmasını sağlar.
  • Dosya Yazma: Bir dosyaya veri yazma işlemidir. Bu işlem, programın belleğindeki verilerin belirtilen bir dosyaya yazılmasını sağlar.

2. Dosya Okuma ve Yazma İşlemi:

  • FileStream Sınıfı: Dosya okuma ve yazma işlemleri için temel sınıftır. Bu sınıf, bir dosyaya veri akışı sağlar.
  • StreamReader ve StreamWriter Sınıfları: Metin dosyalarını okumak ve yazmak için kullanılır. Bu sınıflar, FileStream sınıfını kullanarak dosyalarla etkileşime geçerler.

3. Kod Örneği:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = @"C:\Users\Kullanici\Documents\dosya.txt";

        // Dosyaya yazma
        using (StreamWriter yazici = new StreamWriter(dosyaYolu))
        {
            yazici.WriteLine("Merhaba dünya!");
            yazici.WriteLine("Bu bir test dosyasıdır.");
        }

        // Dosyadan okuma
        using (StreamReader okuyucu = new StreamReader(dosyaYolu))
        {
            string satir;
            while ((satir = okuyucu.ReadLine()) != null)
            {
                Console.WriteLine(satir);
            }
        }
    }
}

Yukarıdaki örnekte, öncelikle StreamWriter sınıfı kullanılarak bir dosyaya yazma işlemi gerçekleştirilmiştir. Daha sonra StreamReader sınıfı kullanılarak dosyadan okuma işlemi yapılmış ve okunan veriler ekrana yazdırılmıştır.

4. Özet:

Dosya okuma ve yazma işlemleri, C# ve .NET platformunda FileStream, StreamReader ve StreamWriter gibi sınıflar aracılığıyla gerçekleştirilir. Dosya okuma işlemi, belirtilen bir dosyadan veri okuyarak programın belleğine aktarılmasını sağlar. Dosya yazma işlemi ise, programın belleğindeki verilerin belirtilen bir dosyaya yazılmasını sağlar. Bu işlemler, dosya işlemleri yaparken sık sık kullanılır ve dosya tabanlı veri işleme uygulamalarında önemli bir rol oynar.

Inspecting file information

Dosya bilgilerini inceleme, bir dosyanın özelliklerini ve meta verilerini almak için kullanılan bir işlemdir. Bu işlem, dosyanın adı, boyutu, oluşturma tarihi, son değiştirme tarihi gibi bilgileri almak için kullanılır.

1. Dosya Bilgilerini İnceleme Nedir?

  • Dosya bilgilerini inceleme, bir dosyanın adı, boyutu, oluşturma tarihi, son değiştirme tarihi gibi özelliklerini almak için kullanılan bir işlemdir.
  • Bu işlem, bir dosyanın özelliklerini programın işleyebileceği şekilde almak için kullanılır.

2. Dosya Bilgilerini İnceleme İşlemi:

  • FileInfo Sınıfı: Bu sınıf, bir dosyanın özelliklerini almak için kullanılır. Dosya yoluyla ilişkilendirilir ve dosyanın özelliklerini sağlar.
  • Dosya Özellikleri: FileInfo sınıfı, bir dosyanın adı, uzantısı, boyutu, oluşturma tarihi, son erişim tarihi, son değiştirme tarihi gibi birçok özelliğe erişim sağlar.

3. Kod Örneği:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = @"C:\Users\Kullanici\Documents\dosya.txt";

        // Dosya bilgilerini almak için FileInfo sınıfını kullanma
        FileInfo dosyaBilgisi = new FileInfo(dosyaYolu);

        // Dosya adı
        string dosyaAdi = dosyaBilgisi.Name;
        Console.WriteLine("Dosya Adı: " + dosyaAdi);

        // Dosya boyutu (byte cinsinden)
        long dosyaBoyutu = dosyaBilgisi.Length;
        Console.WriteLine("Dosya Boyutu: " + dosyaBoyutu + " bytes");

        // Dosya oluşturma tarihi
        DateTime olusturmaTarihi = dosyaBilgisi.CreationTime;
        Console.WriteLine("Oluşturma Tarihi: " + olusturmaTarihi);

        // Dosya son değiştirme tarihi
        DateTime sonDegisimTarihi = dosyaBilgisi.LastWriteTime;
        Console.WriteLine("Son Değişim Tarihi: " + sonDegisimTarihi);
    }
}

Yukarıdaki örnekte, FileInfo sınıfı kullanılarak bir dosyanın özellikleri alınmıştır. Dosya adı, boyutu, oluşturma tarihi ve son değiştirme tarihi gibi bilgiler alınmış ve ekrana yazdırılmıştır.

4. Özet:

Dosya bilgilerini inceleme işlemi, bir dosyanın adı, boyutu, oluşturma tarihi, son değiştirme tarihi gibi özelliklerini almak için kullanılır. Bu işlem, FileInfo sınıfı aracılığıyla gerçekleştirilir. Dosya özelliklerine erişmek için FileInfo sınıfı kullanılır ve bu özellikler programın işleyebileceği şekilde alınır. Bu işlem, dosya işlemleri yaparken dosyanın durumu hakkında bilgi almak için yaygın olarak kullanılır.

Working with directories

“Working with directories” konusu, C# ve .NET platformunda dizinlerle çalışmayı içerir. Dizinler, dosyaları organize etmek ve düzenlemek için kullanılan yapısal bir öğedir. Bu konuda, dizin oluşturma, dizinleri listeleme, dizin adlarını değiştirme ve dizinleri silme gibi işlemler bulunur.

1. Dizinlerle Çalışma Nedir?

  • Dizinler, dosyaları organize etmek ve düzenlemek için kullanılan yapısal bir öğedir. Herhangi bir işletim sistemi, dosyaları ve dizinleri hiyerarşik bir yapıda saklar.
  • C# ve .NET platformunda, dizinlerle çalışmak için System.IO namespace’i altında bir dizi sınıf bulunur.

2. Dizinlerle Çalışma İşlemleri:

  • Dizin Oluşturma: Yeni bir dizin oluşturmak için Directory.CreateDirectory() yöntemi kullanılır.
  • Dizinleri Listeleme: Bir dizindeki tüm alt dizinleri ve dosyaları listelemek için Directory.GetFiles() ve Directory.GetDirectories() yöntemleri kullanılır.
  • Dizin Adını Değiştirme: Bir dizinin adını değiştirmek için Directory.Move() yöntemi kullanılır.
  • Dizin Silme: Bir dizini silmek için Directory.Delete() yöntemi kullanılır.

3. Kod Örnekleri:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // Yeni bir dizin oluşturma
        string dizinYolu = @"C:\Users\Kullanici\Documents\YeniDizin";
        Directory.CreateDirectory(dizinYolu);

        // Dizindeki tüm dosyaları listeleme
        string[] dosyalar = Directory.GetFiles(dizinYolu);
        foreach (string dosya in dosyalar)
        {
            Console.WriteLine("Dosya: " + dosya);
        }

        // Dizindeki tüm alt dizinleri listeleme
        string[] altDizinler = Directory.GetDirectories(dizinYolu);
        foreach (string altDizin in altDizinler)
        {
            Console.WriteLine("Alt Dizin: " + altDizin);
        }

        // Dizin adını değiştirme
        string yeniDizinAdi = @"C:\Users\Kullanici\Documents\YeniDizin2";
        Directory.Move(dizinYolu, yeniDizinAdi);

        // Dizini silme
        Directory.Delete(yeniDizinAdi);
    }
}

Yukarıdaki örnekte, bir dizin oluşturulması, dizin içeriğinin listelenmesi, dizin adının değiştirilmesi ve dizinin silinmesi gibi temel dizin işlemleri gösterilmektedir.

4. Özet:

Dizinlerle çalışmak, dosyaları organize etmek ve düzenlemek için önemli bir beceridir. C# ve .NET platformunda, dizin işlemleri için System.IO namespace’i altında bir dizi kullanışlı yöntem bulunmaktadır. Bu yöntemler, dizinler oluşturma, listeleme, ad değiştirme ve silme gibi çeşitli işlemleri gerçekleştirmenize olanak tanır. Bu işlemler, dosya işlemleri yaparken dosyaların düzenlenmesi ve yönetilmesi için hayati öneme sahiptir.

Regular Expression

RegEx and .NET

Regular Expressions (Düzenli İfadeler), metin işleme ve arama işlemlerinde çok güçlü bir araçtır. .NET platformunda, System.Text.RegularExpressions namespace’i altında Regex sınıfı ile düzenli ifadeler kullanılır. Bu sınıf, metinlerde belirli desenleri aramak, eşleştirmek ve değiştirmek için kullanılır.

1. RegEx ve .NET Nedir?

  • RegEx, metin işleme ve arama işlemlerinde kullanılan bir desen eşleştirme dilidir.
  • .NET Framework, RegEx kullanımını kolaylaştırmak için System.Text.RegularExpressions namespace’i altında Regex sınıfını sağlar.

2. RegEx Temel Kavramlar:

  • Desen (Pattern): Aranacak veya eşleşecek olan metni tanımlayan karakterler dizisi.
  • Metin (Text): Desenin aranacağı veya eşleşeceği metin.
  • Eşleşme (Match): Desenin metin içinde bulunan herhangi bir kısmı.

3. RegEx Temel Metodlar:

  • Regex.Match(): Bir deseni metin içinde arar ve ilk eşleşmeyi döndürür.
  • Regex.Matches(): Bir deseni metin içinde arar ve tüm eşleşmeleri döndürür.
  • Regex.Replace(): Bir metin içindeki tüm desen eşleşmelerini belirli bir metinle değiştirir.

4. Kod Örnekleri:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string metin = "RegEx öğrenmek çok kolaydır. RegEx çok güçlü bir araçtır.";

        // Desen oluşturma
        string desen = @"\bRegEx\b";

        // Deseni metin içinde arama (tek eşleşme)
        Match match = Regex.Match(metin, desen);
        if (match.Success)
        {
            Console.WriteLine("İlk eşleşme: " + match.Value);
        }

        // Deseni metin içinde arama (tüm eşleşmeler)
        MatchCollection matches = Regex.Matches(metin, desen);
        Console.WriteLine("Tüm eşleşmeler:");
        foreach (Match m in matches)
        {
            Console.WriteLine(m.Value);
        }

        // Desen eşleşmelerini değiştirme
        string yeniMetin = Regex.Replace(metin, desen, "Regex");
        Console.WriteLine("Yeni Metin: " + yeniMetin);
    }
}

Yukarıdaki örnekte, Regex sınıfı kullanılarak düzenli ifadelerle çalışma işlemleri gösterilmiştir. İlk olarak bir desen oluşturulmuş ve bu desen metin içinde aranmıştır. Daha sonra tüm eşleşmeleri bulmak için Matches() metodu kullanılmış ve Replace() metodu ile desen eşleşmeleri değiştirilmiştir.

5. Özet:

RegEx ve .NET, metin işleme ve arama işlemlerinde güçlü bir araçtır. .NET Framework içindeki Regex sınıfı, desen eşleştirmeyi kolaylaştırır ve metinlerde belirli desenleri aramak, eşleştirmek ve değiştirmek için kullanılır. Bu sayede karmaşık metin işleme görevleri kolayca gerçekleştirilebilir.

Finding and matching content

Regüler İfadeler (Regular Expressions), metin işleme ve arama işlemlerinde kullanılan güçlü bir araçtır. Belirli bir deseni tanımlamak ve bu deseni içeren metinleri bulmak veya değiştirmek için kullanılır.

1. İçerik Bulma ve Eşleştirme Nedir?

  • İçerik Bulma: Belirli bir deseni veya kalıbı içeren metin parçalarını bulma işlemidir.
  • Eşleştirme: Bir deseni veya kalıbı içeren metin parçalarını bulma ve bu parçaları eşleşen bir desenle karşılaştırma işlemidir.

2. İçerik Bulma ve Eşleştirme İşlemleri:

  • Regex.Match() Metodu: Verilen bir deseni bir metin içinde arar ve ilk eşleşmeyi döndürür.
  • Regex.Matches() Metodu: Verilen bir deseni bir metin içinde arar ve tüm eşleşmeleri döndürür.

3. Kod Örnekleri:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string metin = "Bu bir metin örneğidir. Metin içinde arama işlemi yapılacaktır.";

        // Desen oluşturma
        string desen = @"\bmetin\b"; // "metin" kelimesini içeren desen

        // İlk eşleşmeyi bulma
        Match match = Regex.Match(metin, desen, RegexOptions.IgnoreCase); // Büyük/küçük harf duyarlılığı olmadan arama
        if (match.Success)
        {
            Console.WriteLine("İlk eşleşme: " + match.Value);
        }
        else
        {
            Console.WriteLine("Eşleşme bulunamadı.");
        }

        // Tüm eşleşmeleri bulma
        MatchCollection matches = Regex.Matches(metin, desen, RegexOptions.IgnoreCase);
        Console.WriteLine("Tüm eşleşmeler:");
        foreach (Match m in matches)
        {
            Console.WriteLine(m.Value);
        }
    }
}

Yukarıdaki örnekte, Regex.Match() ve Regex.Matches() metotları kullanılarak metin içinde belirli bir deseni arama işlemleri gösterilmektedir. Öncelikle bir desen oluşturulur, ardından bu desen metin içinde aranır. İlk eşleşme veya tüm eşleşmeler bulunur ve ekrana yazdırılır.

4. Özet:

İçerik bulma ve eşleştirme işlemleri, regüler ifadelerin gücünü kullanarak metin içinde belirli desenleri aramak ve eşleştirmek için kullanılır. Regex.Match() ve Regex.Matches() gibi metotlar bu işlemleri gerçekleştirmek için kullanılır. Bu işlemler, metin işleme ve arama işlemlerinde çok yaygın olarak kullanılır ve metinlerde belirli desenleri bulmak veya değiştirmek için güçlü bir araç sağlar.

Replacing content

Regüler İfadeler (Regular Expressions), metin işleme ve arama işlemlerinde kullanılan güçlü bir araçtır. Metin içinde belirli desenleri bulma, değiştirme ve değiştirme işlemleri için kullanılırlar.

1. İçeriği Değiştirme Nedir?

  • İçeriği Değiştirme: Belirli bir deseni içeren metin parçalarını başka bir metinle değiştirme işlemidir.

2. İçeriği Değiştirme İşlemleri:

  • Regex.Replace() Metodu: Belirli bir deseni içeren metin parçalarını belirli bir metinle değiştirir.

3. Kod Örneği:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string metin = "RegEx çok güçlü bir araçtır. RegEx öğrenmek kolaydır.";

        // Değiştirme deseni
        string desen = @"\bRegEx\b"; // "RegEx" kelimesini içeren desen

        // Metindeki tüm eşleşmeleri "Regex" ile değiştirme
        string yeniMetin = Regex.Replace(metin, desen, "Regex", RegexOptions.IgnoreCase); // IgnoreCase ile büyük/küçük harf duyarlılığı yok
        Console.WriteLine("Yeni Metin: " + yeniMetin);
    }
}

Yukarıdaki örnekte, Regex.Replace() metodu kullanılarak metin içinde belirli bir deseni (Regex) bulan ve bu deseni başka bir metinle (Regex) değiştiren işlem gösterilmektedir. IgnoreCase seçeneği, büyük/küçük harf duyarlılığını devre dışı bırakır.

4. Özet:

İçeriği değiştirme işlemi, regüler ifadelerin gücünü kullanarak metin içinde belirli desenleri bulma ve değiştirme işlemlerini gerçekleştirir. Regex.Replace() metodu, belirli bir deseni içeren metin parçalarını başka bir metinle değiştirmek için kullanılır. Bu işlem, metin içinde belirli desenleri arama ve değiştirme gereksinimlerini karşılamak için sıkça kullanılır.

Using RegEx timeouts

Regüler İfadelerin (Regular Expressions) zaman aşımı (timeout) ayarları, belirli bir süre içinde bir regex deseninin eşleşme işlemini tamamlamak için kullanılır. Bu özellik, eğer bir regex deseni çok karmaşıksa veya büyük metinlerde arama yapılıyorsa, sonsuz döngülere veya uygulamanın yavaşlamasına karşı bir koruma sağlar.

1. RegEx Zaman Aşımı Nedir?

  • RegEx Zaman Aşımı: Belirli bir süre içinde bir RegEx deseninin eşleşme işleminin tamamlanmasını sağlar. Bu, desenin çok karmaşık olduğu durumlarda veya büyük metinler üzerinde çalışırken performans sorunlarını önlemek için kullanılır.

2. Zaman Aşımı Belirleme:

  • Regex.Match() ve Regex.Matches() Metotları: Bu metotlar, bir zaman aşımı süresi belirlemek için kullanılır. TimeSpan yapısı kullanılarak bir zaman aralığı belirtilir.

3. Kod Örneği:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string metin = "Bir metin örneğidir.";

        // Zaman aşımı ayarı (5 saniye)
        TimeSpan zamanAsimi = TimeSpan.FromSeconds(5);

        // Desen oluşturma
        string desen = @"\bmetin\b";

        try
        {
            // Belirli bir süre içinde deseni ara
            Match match = Regex.Match(metin, desen, RegexOptions.None, zamanAsimi);

            if (match.Success)
            {
                Console.WriteLine("Eşleşme bulundu: " + match.Value);
            }
            else
            {
                Console.WriteLine("Zaman aşımı: Desen bulunamadı.");
            }
        }
        catch (RegexMatchTimeoutException)
        {
            Console.WriteLine("Zaman aşımı: İşlem çok uzun sürdü.");
        }
    }
}

Yukarıdaki örnekte, Regex.Match() metodu kullanılarak bir regex deseni belirli bir metinde aranır. Zaman aşımı süresi olarak 5 saniye belirlenmiştir. Eğer bu süre içinde desen bulunamazsa, bir RegexMatchTimeoutException istisnası oluşturulur.

4. Özet:

RegEx zaman aşımı, bir regex deseninin eşleşme işleminin belirli bir süre içinde tamamlanmasını sağlar. Bu, uygulamanın hızını artırmak ve performans sorunlarını önlemek için önemlidir. TimeSpan yapısı kullanılarak bir zaman aralığı belirlenir ve bu süre içinde desenin eşleşmesi tamamlanmazsa bir istisna oluşturulur. Bu özellik, büyük metinlerde veya karmaşık desenlerle çalışırken önemlidir.

Hayatımı sadece ben değiştirebilirim. Kimse benim için bunu yapmaz.

Carol Burnett

Bir sonraki yazıda görüşmek dileğiyle!”

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


3 + 2 = ?