5 Şub 2016

C#'ta ListView Kullanımı


ListView, ListBox'a benzer olsa da onun biraz gelişmiş hali olarak nitelendirilebilir. ListView'un özellikleri Form tasarımında ya da kod ile düzenlenebilir.

4 Şub 2016

C#'ta Try-Catch Kullanımı

Try-Catch yapısı, programımızın herhangi bir durumda bir hata ile karşılaşması durumunda, çalışmayı durdurmak yerine hata ile karşılaşıldığını, hatanın adını,tipini söylemesi istenen durumlarda kullanılır.
try scope'una çalışmasını istediğimiz kod parçası yazılırken, catch scope'una ise try kodunda hata olursa çalışması istenen kodlar yazılır.

C#'ta Timer Kullanımı ve Klavyeden Basılan Tuş Kontrolü




Windows Form uygulaması yaparken Toolbox'ımızda gördüğümüz araçlardan biri de Timer'dır. Bu yazımda Timer hakkında kendi bilgilerimi paylaşacağım.

3 Şub 2016

C#'ta BOM Oyunu Nasıl Yapılır?


Bu oyunda, kullanıcı konsol uygulamasına öncelikle bir bom sayısı girmektedir. Bundan sonra bilgisayar oyuna 1 sayısını ekrana yazdırarak başlamaktadır. Artık kullanıcı ve bilgisayar sırası ile 1'den 100'e kadar olan sayıları bilgisayara girmelidir. Fakat başta girilen BOM sayısının katlarına gelindiğinde bilgisayar ve kullanıcı ekrana o sayıyı değil sadece BOM ya da bom yazısını yazmalıdır. Eğer yazmazlarsa oyunu kaybetmiş demektirler.

2 Şub 2016

C#''ta Labirent Oyunu Nasıl Yapılır?


Bu oyunda mouse imlecimizi kırmızı engelleri aşmaycak şekilde Bitiş yazısına ulaştırmaya çalışıyoruz. Eğer imleç bu kırmızı engelleri aşarsa yeniden başlangıç noktasına dönmektedir.
Bunu sağlamak için lblBasla.Location'u kullanarak bunu bir Point nesnesine atadım ve her defasında buraya dönmesini sağladım. Oyun bittiği zaman program bize tekrar oynamak isteyip istemediğimizi de sormaktadır. Kaynak dosya buradan indirilebilir. Ya da aşağıdaki kodları incelenebilir. Not: MouseEnter metodu Bitiş ve Başlangıç labelleri hariç tüm labellar işaretlenerek açılmıştır. Böylece aşağıdaki label18_MouseEnter metodu sadece label18 için değil tüm kırmızı engeller için geçerli olmuştur.

C#'ta At Yarışı Oyunu Nasıl Yapılır?


Uygulamamın form tasarımı için bir tane çim resmi, 2 tane at resmi ve 1 tane de finish çizgisi resmi buldum. Çim resmini Form'un BackGround Image'i olarak ayarladım. At ve Finish resimlerini ise pictureBox'ların içine attım ve bu pictureBox'ların isimlerini sırasıyla at1, at2 ve finish yaptım.

C#'ta Dinamik Buton Oluşturma

Genelde butonların form çalışır çalışmaz oluşmaları istenir. Bu durumlarda gerekli kod Form'un Load eventi içine yazılmalıdır. Önce Button class'ından bir nesne türetilir. Ardından bu nesnenin özelliklerine (property) gerekli değerler atanır.

1 Şub 2016

C#'ta Debug Klasörü İçindeki Dosyalar ve Kullanım Amaçları

Programı çalıştırmak için bin-> debug içindeki exe uzantılı dosya kullanılır. Pdb dosyaları programın hata ayıklama özelliği kullanabilmesi için gerekli bilgileri saklar. Vhost.exe ve manifest ile biten dosyalar da yine hata ayıklama işlerine yardımcı olması için üretilen dosyalardır. Bu dosyaların kullanılma amaçları;

C#'da Köstebek Yakalama Oyunu Nasıl Yapılır?


Oyunda dinamik olarak butonlar tanımlanarak, köstebeğin çıkabileceği butonlar oluşturuluyor. Ve puan 10, 15, 20, 30 ve 40 olduğunda seviye sürekli arttırılıyor. Seviye arttırmadan kasıt köstebeğin hızı artıyor ve köstebeği yakalama alanımız gittikçe büyüyor. Kırmızı butonlar köstebeği temsil ederken bunlara basınca puanımız artmaktadır. Gri butonlar ise puanımızı azaltmaktadır. Oyunun kodları ve ekran görüntüleri aşağıdaki gibidir.

28 Oca 2016

Visual Studio Designer.cs Yapısı ve Event Kavramı

Visual Studio, biz formun özelliklerini(text, name vs.) değiştirdikçe ve forma bileşen ekleme, çıkarma yaptıkça Designer.cs'de ki koda müdahale ediyor.(Visual Studio'nun ilk yıllarında designer dosyası buradaki gibi ayrı bir dosya değil Form1.cs içerisinde bulunuyormuş. Karmaşa ve kod kalabalığına engel olmak için bu yöntem benimsenmiş.) Böylece Visual Studio'nun oluşturduğu kod ile kendi yazdığımız kod karışmıyor.

27 Oca 2016

C#'ta Static Sınıfı

Bir değişken, özellik veya metodun sadece alınan kopyanın değil de bütün o oluşturulan tipin olması istenilen durumlarda tanımlama static ifadesi ile yapılarak bu sağlanabilir. Alınan kopyadan kasıt sınıf adı kullanılarak türetilen nesne'dir. Örnek:

Sınıf Yokedici (Destructor)

Destructor metotların özel bir yazım şekli bulunmaktadır;
public class Sinif
        {
            ~Sinif()
            {
                Console.WriteLine("Sinif yok edildi");
            }
        }
Her sınıf için 1 tane Destructor olabilir ve sınıf adından üretilen o kopya yok edildiğinde çalışır. private, public gibi erişim hakları verilmez. Ayrıca destructor'ler parametre de almaz. Kod için çağrılmaz, otomatik olarak çalışırlar.

Nesne Kurucusu (Constructor)

Sinif nesne = new Sinif();
Yukarıda Sinif adlı class'ı kullanarak nesne adlı bir nesne türettik. Bu kod satırı okunduğu anda eğer Sinif adlı class'ın içinde bir nesne kurucusu varsa o hiçbir komut beklemeden çalışacak ve içerisindeki işlemler yapılmaya başlanacaktır.

Sınıf Özellikleri (GET-SET Kullanımı)

Bir sınıfın içinde 3 farklı özellik tanımlanabilir. Bunu aşağıdaki örnek ile açıklayabiliriz;
public class AA
        {
            public int x;
            public int y { get; set; }
            private int _z;
            public int z
            {
                get
                {
                    return _z;
                }
                set
                {
                    _z = value;
                }
            }
        }

26 Oca 2016

Değişkenlerin Yaşam Döngüsü ve Class Kullanımı

C#'ta tanımladığınız herşey object sınıfından türer. int türündeki bir değişkeni aşağıdaki gibi de tanımlayabilirsiniz hatta böyle tanımlamasanız bile C# derleyicisi sizin için aşağıdaki kodu çalıştırır;
int x = new int();