15 Aralık 2010 Çarşamba

C# : Kalıtım (Inheritance)

Kalıtım ile ilk oluşturduğumuz sınıfın özelliklerini, ikinci olarak oluşturacağımız sınıfın özelliklerine atarız. Bir sınıftan başka bir sınıf üreterek sınıflarda ki  ortak olan özellikleri tek bir sınıfta toplamış oluruz. Kalıtımın yapılabilmesi için ilk sınıftaki nesnelerin public veya protected ile oluşturulmuş olması gerekir. C# ' de bu şekilde türeyen bir çok sınıf mevcuttur. Nesnelerin türediği sınıfı base Sınıf olarak adlandırırız.

Örneğin; Araba adında bir sınırf oluşturalım ve nesneleri tanıtalım.

namespace Uygulama1
{
    class Araba
    {
        public string ArabaMarka;
        public string ArabaModel;
        public string ArabaRenk;
        public int ArabaYil;
        public int KapiSayisi;

        public void ArabaGoster()
        {
            Console.WriteLine("Araba Özellikleri ; \nMarkası: {0}\nModeli: {1}\nRengi:{2}\nYılı:{3}\nKapı Sayısı:{4}", ArabaMarka, ArabaModel, ArabaRenk, ArabaYil,KapiSayisi);
        }
    }
   
   //  Aşağıda ise Arabul sınıfını, ilk oluşturduğumuz Araba sınıfından türeterek oluştururuz. Araba sınıfında bulunan nesneler böylelikle ArabaBul sınıfına aktarılmış oldu.

class ArabaBul : Araba
    {
        public int fiyat;
        public void fiyatGoster()
        { Console.WriteLine("Fiyatı : {0}", fiyat); }
    }

    class Program
    {
        static void Main(string[] args)
        {

            ArabaBul Araba = new ArabaBul();
            Araba.Marka = "Audi";
            Araba.Model = "A6";
            Araba.Renk = "Siyah";
            Araba.Yil = 2010;
            Araba.KapiSayisi = 4;
            Araba.ArabaGoster();
            Araba.fiyatGoster();
            Console.Read();
        }
    }
}

3 Aralık 2010 Cuma

Sql Server' da Fonksiyonlar

Fonksiyonlar, değer döndüren program birimidir. Yerleşik fonksiyonlar dışında bizimde tanımlayacağımız fonksiyonlar vardır. Kullanıcı tanımlı fonksiyon "0" veya birden fazla değer alabilir. İstenilen değer tipinde dönüş yapabilirler. INT; VARCHAR değer döndürebileceği gibi bir tablo da döndürebilir. Output parametrelere destek vermezler.Sabit fonksiyonlar gibi tek bir değer döndürebilirler.

1- Scalar Functions () : Tek bir değer döndürebilirler.


CREATE FUNCTION fn_UrunSayisi()
RETURNS int
AS BEGIN
  DECLARE @UrunSayisi int

  SELECT @UrunSayisi = COUNT(*)
  FROM Production.Product

  RETURN @UrunSayisi
END

Oluşturduğumuz bu fonksiyon production tablosunda ki product yani ürünlerin toplam kaç tane olduğunu saymaya yarar.

Fonksiyonu çağırmak için kullandığımız T-SQL komutu ise ;

SELECT dbo.fn_UrunSayisi()

1 Aralık 2010 Çarşamba

Seninki kaç santim? - Greenpeace

Seninki kaç santim? - Greenpeace



C# : Nesneye Yönelik Programlama, Classes, Objects, Methods, Events


C# dili tam anlamıyla nesne tabanlı biri dildir. Bu dil içerisinde Class (sınıf) kavramının önemli bir yeri vardır.

Class yapısı herhangi bir nesnenin program içerisindeki kalıbı olarak düşünülebilir. Bu kalıp nesnenin tüm özelliklerini tutup, program içerisinde değişik yerlerde kullanımını sağlar. Class yapıları nesne yönelimli yazılım dillerinin temel yapılarından biridir ve yazılımcılar için değişik avantajları vardır.

1. Yazılan bir class ayni program içerisinde veya başka programlarda birçok kez kullanılabilir.
2. Yazılım ve test sürecilerini kısaltır.
3. Kod organizasyonunu sağlayıp hataların bulunmasını kolaylaştırır.
4. Kod üzerindeki yapılacak olan değişikliklerin kolaylaşmasını sağlar.

Nesneye yönelik programlama uygulamaları nesneler kullanarak yani bir çok nesnenin bir araya gelmesi ile oluşturularak yapılır. Yani kullandığımız yordamları direk uygulama koduna yazmayıp, sınıflar içine yazarak ve bu sınıflardan türettiğimiz nesneler üzerinden çağırarak yaparız.

Örneğin;  Animal adında bir class oluşturup olacak özelliklerini girelim.


namespace ClassLibrary1
{
    class Animal
    {
        public string Turu;
        public string Adi;
        public int Yas;
        public int BacakSayisi;
        public int Boyu;
        public int Uzunlugu;
        public string Rengi;
    }
}

Yukarıda Animal adında bir class oluşturduktan sonra özelliklerini tanıplayıp türlerini (int, string, bool) tanıttık.

namespace ClassLibrary1
{
    class myClass
    {
         public void Test1()
        {
            Animal OkulunKedisi;
            OkulunKedisi = new Animal();
            OkulunKedisi.Turu="Kedi";
            OkulunKedisi.Adi="Tombul Kedi";
            OkulunKedisi.Rengi = "Siyah & Beyaz";
            OkulunKedisi.BacakSayisi = 4;
            OkulunKedisi.Uzunlugu = 35;
            OkulunKedisi.Boyu = 25;
    }
    }
}

Bu kod da ise ilk önce "Animal OkulunKedisi;" diyerek  Animal classında OkulunKedisi adında bir nesne ile çalışacağımızı belirttik. Ardından da "OkulunKedisi = new Animal();" ile OkulunKedisi adında bir nesne ekledik ve daha önceden belirttiğimiz değerlerini girdik.

Public : Foknsiyona sınıf içinden ve sınıf dışından erişime izin verir.
Private : Bu erişim belirteci işaretlenen öğeye sadece sınıfın içinden erişilebileceği anlamına gelir.
Protected: Bu erişim belirteci işaratelenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.

Metotlar kontrollerin (Button, Label, Textbox...) yapabileceği işlemlerdir. Programın herhangi bir yerinde kullanmak için belirli bir işi yerine getirmek amacıyla tasarlanmış kod parçalarıdır.

 private void button1_Click(object sender, EventArgs e)
        {

            textBox1.Clear();
            //Textbox1 kontrolünün text'ini temizler.

            textBox1.Focus();
            //Textbox1 kontrolüne odaklanır.
        }
    }
}

Metotlar parametrelerle veya parametresiz çağırılabilirler. Parametreyle çağırmak, metodun girilen değere göre işlem yapacağını belirler.  Örneğin;

class Class1
    {
        int Topla(int Sayi1, int Sayi2)
        {
            int Sonuc;
            Sonuc = Sayi1 + Sayi2;
            return Sonuc;
        }
    }
}
Kontrollerin bazı ortak metodları vardır. Mesela;

BringToFont : Üst üste duran kontroller arasından en öne gelir.
SendToBack : Üst üste duran kontrollerin en arkasına gönderilir.
Hide : Kontrolün görünmesini engeller.
Show : Kontrolün görünmesini sağlar.

Olaylar kontrollerin cevap evrebileceği eylemlerdir.Bir olay gerçekleşeceği zaman yapılacak işlem, ilgli olayın metoduna yazılır.  Örneğin; bir Button kontrollü Click olayına, bir Texbox'taki yazının değişmesi sağlanabilir. Button1 isimli kontrolün üzerine tıklandığı zaman gerçekleştirmek istenen eylemler Button1_Click metoduna yazılır.

Click : Kontrol üzerine tıklandığı zaman tetiklenen olaydır.
MouseDown : Fere, kontrolün üzerindeyken herhangi ir tuşa basıldığı zaman gerçekleşen olaydır.
MouseUp : Fare, kontrolün üzerindeyken basılan tuş bırakıldığı zaman çalışır.
Enter : kontrol seçildiği veya üzerine odaklanıldığı zaman gerçekleşen oalydır.