C# Delegate ve Event kullanarak Kargo Aracı Hız Takip Uygulaması

Categories Bi DakikaPosted on

Okulda verilen bir ödev Delegate ve Event kullanarak Kargo Aracının Hızını Takip Etmek. Ödev aslında oldukça basit ve ödevi yaparken Delegate ve Event kullanmamız gerekiyordu. Detaylara aşağıdan ulaşabilirsiniz.

Delegate ve event kullanımı başlarda zor olsa da aslında oldukça basit. Detaylı anlatıma -> http://www.gencayyildiz.com/blog/cta-delegatetemsilci-ve-eventolay-kullanimi linkinden ulaşabilirsiniz. Yeni başlayanlar ve kafası karışık olanlar için Delegate ve event nedir? ve nasıl kullanılır gibi terimleri örnekler yardımı ile oldukça güzel açıklamış.

Delegate ve Event kullanarak Kargo Aracının Hızını Takip Etme Detayları

  • Bir kargo şirketinin ulaştırma filosundaki araçların birer nesne ile ifade edilebildiği bir kütüphane
    olduğunu düşünelim. Bu kütüphane içerisindeki fonksiyonellikler den biriside, araçların uydu
    sistemleri yardımıyla düzenli olarak izlenmesi ve güncel koordinat, anlık hız gibi bilgilerinin elde
    edilmesi olduğunu varsayalım.
  • Araçların belirlenen hız limitlerini aşmaları sonrasında oluşacak durumların söz konusu
    kütüphaneyi kullanan uygulamalar tarafından, istenirse ele alınmalarını sağlamak amacıyla
    gereken olayları (event) ve sınıfları yazmanız istenmektedir. Böylece söz konusu program, araç
    hız limitini aştığı zaman neler yapmak istiyorsa bunları istediği şekilde ele alabilecektir.
  • Sınıf, temsilci ve olay tanımlamalarını aşağıda bir bölümü verilen
    Kaynak_Kod_2 çalıştırıldığında; verilen ekran çıktısını alabilecek şekilde projeyi geliştirmeniz
    istenmektedir. CargoVehicle Kargo aracı nesnesi için tasarlanacak sınıfı, SpeedExceeded kargo
    aracının hız bilgisinin değişmesi durumunda tetiklenecek olayı, SpeedHandler olay için kullanılan
    temsilciyi göstermektedir. kargo_aracı_SpeedExceeded ise temsilciye bağlanacak metodun
    ismidir. Hız limitinin varsayılan değeri olarak 110 alınmıştır.

Kaynak Kod 1

CargoVehicle kargo_aracı = new CargoVehicle("42SU1975");
kargo_aracı.SpeedExceeded += new SpeedHandler(kargo_aracı_SpeedExceeded);

Kaynak Kod 2

for (byte i = 80; i < 130; i += 5)
{
 kargo_aracı1.Speed = i;
 kargo_aracı2.Speed = (byte)(i + j);
 Console.WriteLine(kargo_aracı1.Plaka+" plakalı aracın hızı = "+kargo_aracı_1.Speed);
 Console.WriteLine(kargo_aracı2.Plaka+" plakalı aracın hızı = "+kargo_aracı_2.Speed);
 Thread.Sleep(1000);
}

Programın Vermesi Gereken Örnek Çıktı

Proje kodlarını GitHub hesabımda paylaştım. Aşağıda yer alan GitHub resmine tıklayarak ilgili kodlara ulaşabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.