C# Switch Case Kullanımı - Csharp Eğitim Dünyası

Top Ad unit 728 × 90

Konularımız

random
[post_ad]

C# Switch Case Kullanımı

C# Switch Case Kullanımı

C# Switch Case Kullanımı

C# dilinde switch case kullanımı, çoklu koşullar arasında kolayca seçim yapılmasını sağlayan bir kontrol yapısıdır. Özellikle sabit değerler arasında seçim yapmayı gerektiren durumlarda, if-else bloklarına göre daha okunabilir ve performanslı bir yapı sunar.

Switch Case Nedir?

Switch case yapısı, belirli bir değişkenin değerine göre farklı kod bloklarının çalıştırılmasını sağlar ve bu sayede kodun karmaşıklığını azaltır. Genellikle menü sistemleri, sabit duruma göre işlem yapan uygulamalar ve sabit değerlerle çalışan durumlarda tercih edilir.

Switch Case’in Avantajları

Switch case, C# dilinde çok kullanışlı bir kontrol yapısıdır çünkü birden fazla durumu kolayca kontrol edebilir ve sabit değerlere göre kararlar verir. Özellikle bir değişkenin belirli sabit değerlere sahip olduğu senaryolarda, switch case uzun if-else bloklarına olan ihtiyacı ortadan kaldırır ve kodu daha düzenli hale getirir.

Performans Artışı

Switch case yapısının avantajları arasında performans artışı, kod okunabilirliğinin artması ve hata yapma olasılığının azalması sayılabilir. Bir değişkenin alabileceği belirli durumlar arasında hızlıca seçim yaparak, kodun daha verimli çalışmasını sağlar.

Önemli Noktalar

Ayrıca, switch case yapısında kod yazarken dikkat edilmesi gereken bazı önemli noktalar vardır. Her bir case bloğunun sonunda break ifadesi eklemek önemlidir. Aksi takdirde, istem dışı olarak diğer case blokları da çalıştırılabilir, bu da yazılım hatalarına yol açabilir.

Ek Özellikler

Switch case yapısını kullanmanın bir diğer avantajı da, sadece sabit değerlere göre çalışmasıdır. Bu sayede, değişkenlerin alabileceği sabit durumlar arasında daha net bir kontrol sağlanır. Örneğin, bir sayının 1, 2 veya 3 olma durumlarına göre farklı işlemler yapmak istiyorsanız, switch case yapısı ideal bir çözüm sunar.

Gelişmiş Özellikler

İlerleyen C# sürümlerinde pattern matching gibi ek özelliklerle daha güçlü hale gelen switch case, daha esnek koşulların kontrol edilmesine de olanak tanır.

Özet

Özetle, switch case kullanımı C# dilinde hem performans hem de kodun düzeni açısından önemli avantajlar sağlar. Özellikle sabit durumlar arasında hızlıca geçiş yapmayı gerektiren senaryolarda switch case, vazgeçilmez bir kontrol yapısı olarak karşımıza çıkar.

Switch Case Kullanımının Faydaları

  • Birden fazla durumu kolayca kontrol etme imkanı sağlar.
  • If-else bloklarına kıyasla daha okunabilir ve düzenlidir.
  • Kodun daha hızlı çalışmasını sağlar.
  • Sabit değerlere dayalı olduğu için hata yapma olasılığı düşüktür.
  • Pattern matching ile daha esnek ve güçlü hale gelmiştir.

Switch case yapısı, özellikle çok sayıda sabit durum arasında seçim yapılacaksa, if-else yapılarına kıyasla daha avantajlıdır. Kodun daha anlaşılır ve düzenli olmasını sağlayarak, hem geliştiricilerin işini kolaylaştırır hem de performans açısından olumlu etkiler sunar.

C# Switch Case Nedir?

C# switch case yapısı, programlama dillerinde sıkça kullanılan ve koşullara bağlı olarak farklı kod bloklarının çalıştırılmasını sağlayan bir kontrol yapısıdır. Switch case, özellikle bir değişkenin farklı olası değerlerine göre farklı işlemler yapılmasını sağlar. Bu yapıyı kullanarak, birden fazla if-else bloğu yerine daha sade ve düzenli bir kod oluşturabilirsiniz. Böylece, kod okunabilirliği artar ve karmaşık koşullar daha net bir şekilde yönetilebilir.

C# dilinde switch case yapısı genellikle sabit değerlere dayalı koşulların kontrol edilmesinde kullanılır. Örneğin, bir değişkenin birkaç farklı değeri olabileceği durumlarda her değer için bir işlem yapılması gerekiyorsa, switch case bu ihtiyacı karşılar. Bunun en büyük avantajlarından biri, birden fazla koşulu hızlı bir şekilde değerlendirerek en uygun kod bloğunu çalıştırmasıdır.

Switch case yapısının en temel kullanım alanlarından biri, kullanıcı girdilerinin veya sistemden alınan verilerin farklı olasılıklara göre işlenmesidir. Örneğin, bir uygulamanın menü seçeneklerini yönetmek, günleri veya ayları temsil eden değişkenler üzerinde işlem yapmak gibi senaryolarda switch case oldukça kullanışlıdır.

C# switch case, ayrıca performans açısından da avantajlar sunar. Birden fazla if-else ifadesi ile yazılmış kodlarda, her bir koşul tek tek kontrol edilirken, switch case yapısında ilgili değer doğrudan bulunarak ilgili kod bloğu hızlıca çalıştırılır. Bu da uygulamanın çalıştırma hızını artırabilir, özellikle çok fazla koşul içeren yapılarda performans iyileştirmesi sağlar.

Özetle, C# switch case yapısı, programlamada bir değişkenin farklı olasılıklarını kontrol etmek ve bu olasılıklara göre farklı işlemler yapmak için kullanılır. Bu yapının avantajı, kodu daha okunabilir, düzenli ve performanslı hale getirmesidir. Switch case kullanarak, if-else bloklarının neden olduğu karmaşıklığı azaltabilir ve kodunuzu daha temiz bir yapıda organize edebilirsiniz.

C# Switch Case Özellikleri

C# dilindeki switch case yapısı, program akışını kontrol etmek için kullanılan temel yapılar arasındadır. Switch case, belirli bir değere dayalı olarak farklı kod bloklarının çalıştırılmasını sağlar. Bu yapıda, bir değişkenin veya ifadenin sabit (constant) değerleri kontrol edilir ve her bir sabit değer için bir case bloğu tanımlanır. Örneğin, bir değişkenin değeri 1 ise belirli bir kod bloğu çalıştırılır, 2 ise başka bir kod bloğu devreye girer.

Switch case yapısının en temel özelliklerinden biri, break ifadesinin kullanılmasıdır. Her bir case bloğu sonunda mutlaka bir break ifadesi yer almalıdır. Aksi takdirde, program bir sonraki case bloğuna geçebilir ve istenmeyen sonuçlar doğurabilir. Bu duruma "fall-through" adı verilir. Fall-through, çoğu zaman istenmeyen bir davranıştır ve kontrolsüz bir şekilde diğer kod bloklarının da çalıştırılmasına neden olabilir.

Bir diğer önemli özellik ise, default bloğunun kullanımıdır. Switch case yapısında, herhangi bir case bloğuna uymayan değerler için bir varsayılan davranış belirlemek mümkündür. Eğer hiçbir case ifadesi ile eşleşmeyen bir değer girilirse, default bloğundaki kodlar çalıştırılır. Bu, programın beklenmedik bir değere karşı nasıl tepki vereceğini kontrol etmek için oldukça yararlıdır.

Switch case, yalnızca sabit değerlerle çalıştığı için, bu yapı içerisinde değişkenlerin (variables) kullanılmasına izin verilmez. Sabit değerler arasında tamsayılar (int), karakterler (char), sabit diziler (enum tipleri) ve hatta stringler bulunabilir. Özellikle string veri türünün de switch case yapısında kullanılabilmesi, C#'ın modern sürümlerinde önemli bir avantaj sağlar.

Son olarak, switch case yapısı performans açısından da avantaj sağlar. Çok sayıda if-else bloğu yerine switch case kullanmak, programın daha hızlı çalışmasına ve kodun daha okunabilir hale gelmesine yardımcı olur. Çünkü switch case, her bir durumu kontrol ederken daha optimize bir yapı kullanır ve bu da daha iyi bir performans sağlar.

C# Switch Case Methodları

C# programlama dilinde switch case yapısı, belirli koşullar altında belirli kod bloklarının çalıştırılmasını sağlayan önemli bir kontrol mekanizmasıdır. Methodlar, yani fonksiyonlar ve işlevsel kod yapıları, bu yapı ile daha düzenli ve esnek bir hale getirilebilir. Switch case'in temel kullanım amacı, çok sayıda if-else ifadesiyle karşılaştırma yapılması gereken durumları daha okunabilir ve verimli hale getirmektir. Özellikle sabit değerler üzerinden işlemler yapıldığında bu yöntem daha performanslı bir alternatif sunar.

Switch case methodları, C#'ta hem sayısal hem de metinsel (string) veri türleri ile çalışabilmektedir. İlk başlarda sadece int veya char gibi sabit veri türleriyle uyumlu olan switch case yapısı, daha yeni C# sürümleri ile birlikte string türü gibi daha karmaşık veri tipleri üzerinde de işlem yapabilme kabiliyetine sahip olmuştur. Bu özellik, özellikle kullanıcı girdileriyle işlem yapılan projelerde büyük kolaylık sağlar.

Pattern Matching ve Switch Case

Modern C# sürümleri ile birlikte switch case yapısı çok daha güçlü bir hal almıştır. Özellikle pattern matching (desen eşleştirme) özelliği, switch case methodlarına büyük esneklik katmaktadır. Pattern matching ile sadece sabit değerler değil, nesnelerin türüne göre de işlem yapılabilir. Örneğin, bir nesnenin türünü kontrol etmek ve ona göre bir işlem yapmak istediğinizde switch case ile bu kontrolü yaparak, kodunuzu hem daha kısa hem de daha okunabilir hale getirebilirsiniz.



Yukarıdaki örnekte, veri değişkeni hem tam sayı hem de metin türünde olabilir. Pattern matching sayesinde switch case içerisinde bu türler kolayca kontrol edilip, ona göre işlem yapılabilmektedir.

Switch Case Methodlarıyla Daha Verimli Kodlama

Switch case methodları ile karmaşık karşılaştırmalar ve kontroller daha kolay hale gelir. Özellikle büyük projelerde ve farklı işlevlerin birbirine bağlandığı yapılarda bu yöntem, if-else blokları yerine daha temiz bir çözüm sunar. Örneğin, bir e-ticaret sisteminde ürün kategorilerine göre farklı işlemler yapmak için switch case kullanarak kodunuzu düzenli tutabilir, her bir kategori için farklı işlevleri methodlar ile çağırabilirsiniz. Bu da kodun sürdürülebilirliğini ve gelecekte yapılacak güncellemeleri kolaylaştırır.

Switch case yapısının bir diğer avantajı da, koşul sayısı arttıkça performansın if-else bloklarına göre daha iyi olmasıdır. Çünkü switch case, sabit değerler arasında doğrudan karşılaştırmalar yapar ve bu sayede gereksiz kontrollerden kaçınır.

Sonuç Olarak

Switch case methodları, C# dilinde çok güçlü ve esnek bir kontrol mekanizması sunar. Gerek pattern matching ile tür kontrolleri gerekse string veri türleri ile işlem yapılabilmesi, bu yapıyı modern C# projelerinde vazgeçilmez kılar. Özellikle büyük projelerde, daha temiz ve sürdürülebilir kod

C# Switch Case Nasıl Kullanılır?

Switch case yapısı, programlama dillerinde bir değişkenin değerine göre belirli kod bloklarının çalıştırılmasını sağlayan önemli bir kontrol yapısıdır. C# dilinde de switch case kullanımı oldukça yaygındır ve doğru kullanıldığında kodun hem okunabilirliğini hem de performansını artırır. Peki, C# dilinde switch case nasıl kullanılır? Aşağıda bu sorunun cevabını detaylı bir şekilde açıklıyoruz.

Switch case yapısını kullanmaya başlamadan önce, ilk olarak hangi değişken üzerinde kontrol gerçekleştireceğimizi belirlememiz gerekir. Bu değişken genellikle bir integer, string veya enum tipi olabilir. Switch ifadesi bu değişkeni parantez içinde alır ve değişkenin değerine göre, ilgili case blokları içerisinde yer alan işlemler gerçekleştirilir. Eğer switch ifadesi içerisinde tanımlı olmayan bir değerle karşılaşılırsa, default bloğu devreye girer. Default bloğu, olası tüm case'lerin dışında kalan durumlar için tanımlanan bloktur ve genellikle bir hata mesajı ya da varsayılan bir işlem içerir.

Bir switch case yapısında her case ifadesinin sonunda mutlaka bir break komutu bulunmalıdır. Bu komut, belirli bir case bloğu çalıştıktan sonra switch ifadesinin tamamlanmasını sağlar ve diğer case bloklarının çalışmasını engeller. Eğer break komutu kullanılmazsa, bir sonraki case bloğu da çalıştırılır ki bu genellikle istenmeyen bir durumdur.

Örnek Switch Case Kullanımı

Aşağıda, C# dilinde basit bir switch case yapısının nasıl çalıştığını gösteren bir kod örneği bulunmaktadır. Bu örnekte, bir tam sayı değeri kontrol edilmekte ve bu değere göre belirli işlemler gerçekleştirilmektedir:



Yukarıdaki örnekte, sayi değişkeni 2 değerine sahip olduğu için, ikinci case bloğu çalıştırılır ve "Sayı 2" mesajı ekrana yazdırılır. Eğer sayi değişkeni 1 olsaydı, "Sayı 1" mesajı gösterilecekti. Eğer sayi değişkeni 1, 2 veya 3 dışında bir değer alsaydı, default bloğu devreye girecek ve "Geçersiz sayı" mesajı gösterilecekti.

Switch Case Yapısında String Kullanımı

C# dilinde sadece tam sayı veya enum değerleri değil, string ifadeleri de switch case yapısında kullanmak mümkündür. Bu özellik, programlama sürecinde daha esnek ve dinamik yapılar kurmamıza olanak tanır. Örneğin, aşağıdaki kodda gün adlarına göre bir işlem gerçekleştirilmektedir:



Bu örnekte, gun değişkeni "Çarşamba" değerini taşıdığı için, "Haftanın ortası" mesajı ekrana yazdırılacaktır. Eğer değişkenin değeri "Pazartesi" veya "Cuma" olsaydı, ilgili case blokları çalışacaktı. Değişkenin değeri tanımlı case bloklarından hiçbirine uymuyorsa, default bloğu devreye girecektir.

Break Komutunun Önemi

Switch case yapısında break komutunun kullanımı son derece önemlidir. Her bir case bloğunun sonunda break komutu yer almazsa, kod bir sonraki case bloğuna da geçiş yapabilir. Bu durum genellikle istenmeyen bir sonuç doğurur ve kodun hatalı çalışmasına neden olur. Break komutu, case blokları arasında gereksiz geçişlerin önlenmesini sağlar ve switch ifadesinin doğru bir şekilde sonlanmasını garanti eder.

Switch Case Yapısında Enum Kullanımı

C# dilinde switch case yapısında enum tipleri de kullanılabilir. Enum, bir grup sabit değeri temsil eden veri tipidir ve kodu daha anlamlı hale getirir. Switch case ile enum kullanmak, kodun okunabilirliğini artırır ve potansiyel hataları azaltır. Aşağıda enum ile switch case kullanımına dair bir örnek bulunmaktadır:



Bu örnekte, Gunler adında bir enum oluşturulmuş ve günlerin adları enum sabitleri olarak tanımlanmıştır. Ardından switch case yapısında, bugun değişkeni kontrol edilerek belirli günlere göre işlemler gerçekleştirilmiştir. Eğer bugun değişkeni Çarşamba ise, ekrana "Haftanın ortası" mesajı yazdırılacaktır. Diğer günler için ilgili case blokları çalıştırılır.

Enum kullanımı, sabit değerlerle çalışırken kodun hem daha güvenli hem de daha okunabilir olmasını sağlar. Bu yüzden switch case yapılarında enum'ları kullanmak, hataların önlenmesi ve kodun daha anlaşılır hale getirilmesi açısından önemlidir.

Sonuç olarak, C# dilinde switch case kullanımı, doğru yapılandırıldığında hem kodun okunabilirliğini artırır hem de belirli durumlar arasında hızlı geçişler yaparak performansı iyileştirir. Özellikle çok sayıda sabit değerin kontrol edildiği senaryolarda, if-else yapıları yerine switch case kullanmak daha mantıklı bir tercih olacaktır.

C# Switch Case Nerelerde Kullanılıyor?

Switch case yapısı, genellikle sabit ve önceden bilinen değerler arasında seçim yapılması gereken durumlarda kullanılır. Bu yapı, belirli bir koşula bağlı olarak farklı işlemlerin gerçekleştirilmesi gerektiğinde büyük kolaylık sağlar. Özellikle kullanıcı girdisi veya menü seçenekleri gibi sabit değerlerin işleme alınması gereken durumlarda tercih edilir.

Örneğin, bir uygulama geliştirdiğinizi düşünün ve bu uygulamada kullanıcıya çeşitli menü seçenekleri sunuyorsunuz. Kullanıcı belirli bir seçenek seçtiğinde, o seçeneğe göre farklı işlemler yapılmasını istiyorsunuz. İşte bu noktada switch case yapısı devreye girer. Her bir menü seçeneği için ayrı ayrı if-else blokları yazmak yerine, daha okunabilir ve düzenli bir kod yapısı için switch case kullanmak en iyi tercihlerden biridir. Ayrıca, switch case yapısı bu tür kontrolleri daha hızlı ve verimli bir şekilde gerçekleştirir.

Switch case yapısı sadece menülerde değil, durum kontrolleri, hata yönetimi, kullanıcı tercihlerine göre değişiklik yapılması gereken işlemlerde de kullanılır. Örneğin, bir oyun geliştirme sürecinde, oyuncunun girdiği komutlara göre farklı senaryoların uygulanmasını switch case ile kolayca yönetebilirsiniz. Aynı şekilde, bir e-ticaret sitesinde kullanıcıların alışveriş adımlarında yaptıkları seçimlere göre farklı ödeme veya kargo seçenekleri sunmak için switch case yapısı oldukça kullanışlıdır.

Bir diğer kullanım alanı ise durum makineleri (state machines) içinde switch case yapısının tercih edilmesidir. Bu tür yapılarda, belirli bir olayın tetiklenmesine bağlı olarak sistemin farklı bir duruma geçmesi gerekebilir. Her durum, belirli bir case bloğu içinde yer alır ve belirli koşullara göre tetiklenir.

Özetle, C# switch case yapısı, sabit ve belirli değerler arasında seçim yapmanın gerekli olduğu durumlarda, kodun daha okunabilir ve performanslı olmasını sağladığı için sıkça tercih edilen bir yapıdır. Menü yapıları, durum kontrolleri ve hata yönetimi gibi çeşitli senaryolarda kullanılabilir ve büyük projelerde hem zamandan tasarruf sağlar hem de kod karmaşıklığını azaltır.

C# Switch Case Neden Kullanmalıyız?

Switch case yapısı, yazılım geliştiricilerinin kodlarını daha temiz, düzenli ve okunabilir hale getirmelerine yardımcı olur. Özellikle birden fazla koşulun kontrol edilmesi gerektiği durumlarda, if-else blokları yerine switch case kullanmak, kodun daha verimli çalışmasını sağlar. If-else yapılarında, her koşul sırasıyla kontrol edilirken, switch case ile doğrudan ilgili case'e gidilir ve gereksiz kontrol adımları atlanır. Bu da hem performans açısından avantaj sağlar hem de kodun daha hızlı çalışmasına olanak tanır.

Bir diğer önemli neden, switch case yapısının kodun okunabilirliğini artırmasıdır. Çok sayıda if-else yapısı, özellikle karmaşık koşullarda kodun okunmasını zorlaştırabilir. Ancak switch case, her bir koşulu ayrı bir case bloğunda düzenli bir şekilde gruplandırarak, kodu daha anlaşılır hale getirir. Bu sayede hem yazılımcılar hem de ekip arkadaşları kodu daha kolay anlayabilir ve sürdürebilirler.

Performans ve okunabilirliğin yanı sıra, switch case yapısının bir diğer avantajı da modülerliği artırmasıdır. Yeni koşullar eklenmek istendiğinde, mevcut case bloklarına kolayca yeni case'ler eklenebilir. Bu da kodun bakımı ve güncellenmesi süreçlerinde zaman tasarrufu sağlar. Ayrıca, her case için ayrı ayrı kod parçacıkları yazılabilir ve bu da kodun daha organize olmasına katkı sağlar.

Özellikle sabit ve bilinen değerler arasında geçiş yapmak için tercih edilen switch case yapısı, menü seçimleri, sabit durum kontrolleri, hata yönetimi gibi pek çok senaryoda kullanılır. Bununla birlikte, modern C# sürümleriyle birlikte gelen pattern matching özellikleriyle switch case yapısı daha esnek hale gelmiştir. Bu nedenle, performansın ve okunabilirliğin kritik olduğu projelerde switch case kullanımı büyük avantaj sağlar.

Sonuç olarak, switch case yapısını kullanmak, hem kodun yapısal düzenini korur hem de geliştirme sürecini hızlandırır. Özellikle, if-else yapılarına göre daha kısa ve anlaşılır kod blokları yazılmasına imkan tanıdığı için, switch case yapısının tercih edilmesi, geliştiricilere büyük fayda sağlar.

C# Switch Case Önemi Nedir?

C# dilinde switch case yapısı, programların daha düzenli, okunabilir ve etkin hale getirilmesi için son derece önemlidir. Özellikle, birden fazla koşulu kontrol etmeniz gereken durumlarda, if-else yapılarına göre çok daha verimli ve kısa bir çözüm sunar. Switch case, sabit değerler arasında hızlı bir geçiş sağlayarak gereksiz karşılaştırmaları önler ve kodun performansını artırır.

Örneğin, bir programda kullanıcı girişlerine göre farklı işlemler gerçekleştirilmesi gerekiyorsa, if-else bloklarıyla bu işlemler uzun ve karmaşık hale gelebilir. Ancak switch case yapısı, koşulların sabit olduğu durumlarda, kodun hem daha kısa hem de daha anlaşılır olmasını sağlar. Ayrıca switch case, gelecekteki düzenlemeler için de daha esnek bir yapı sunar, çünkü her yeni durumu eklemek için sadece bir 'case' bloğu eklemek yeterli olur.

Switch case yapısının diğer bir avantajı da, C# dilinin performans odaklı tasarımına uygun bir şekilde çalışmasıdır. Çok fazla koşulun kontrol edilmesi gerektiği büyük uygulamalarda, switch case, if-else yapısına göre daha hızlı çalışır, çünkü sabit değerlerle doğrudan karşılaştırmalar yapar. Bu da büyük veritabanı işlemleri, API çağrıları ve arayüz kontrolleri gibi sıkça kullanılan senaryolarda switch case'i tercih edilir hale getirir.

Sonuç olarak, C# dilinde switch case kullanımı, programcılar için kodun daha anlaşılır, bakımı kolay ve performans odaklı bir yapı sunar. Bu yapı sayesinde, aynı zamanda programın işleyişi daha düzenli hale gelir ve farklı koşullara göre doğru işlemleri hızlı bir şekilde gerçekleştirmek mümkün olur. Özellikle büyük projelerde, switch case yapısı ile kod karmaşıklığından kaçınarak, daha yalın bir yapı oluşturulabilir.

C# Switch Case Örnek Kodları

C# dilinde switch case yapısının farklı senaryolarda nasıl kullanıldığına dair birkaç örnek inceleyeceğiz. Bu örnekler, programlama yeteneklerinizi geliştirmek ve çeşitli durumları yönetmek için switch case yapısını nasıl uygulayabileceğinizi gösterecektir.

1. Stok Listesi Kontrolü

Bir ürünün stok durumu kontrol edilerek kullanıcıya uygun mesaj verilebilir:



2. Kategori Listesi Seçimi

Kullanıcının seçtiği kategoriye göre farklı mesajlar gösterebiliriz:



3. Kitap Listesi Kontrolü

Bir kitap listesi üzerinden seçilen kitaba göre işlem yapabilirsiniz:



4. İsim Listesi Kontrolü

Kullanıcı isimleri üzerinden işlem yapılabilir:



5. URL Kontrolü

Farklı URL'lere göre kullanıcı yönlendirmeleri yapılabilir:



Yukarıdaki örnekler, C# dilinde switch case yapısının farklı senaryolarda nasıl kullanılabileceğini göstermektedir. Bu yapı sayesinde, programınızda daha düzenli ve okunabilir bir kontrol akışı oluşturabilirsiniz.

Hiç yorum yok:

All Rights Reserved by Csharp Eğitim Dünyası © 2023 - 2024
Powered By Ebubekir Bastama(EBS), Designed by EÇK Yazılım

İletişim Formu

Ad

E-posta *

Mesaj *

Blogger tarafından desteklenmektedir.