C# ile interface (arayüz) tanımlama ve kullanımı örneklerimize devam ediyoruz, örneklere geçmeden önce kısa bir not ile interface’in ne olduğunu hatırlayalım daha sonra örneklerimize geçiş yapalım “Interface (Arayüz) Sınıflara (Class) ne yapacaklarını söyleyen bu işlem yapılırken hangi metot veya değişkenleri kullanabilecekleri konusunda yol gösteren yapılardır. Interface içinde sadece tanımlama yapılır kod blokları yer almaz” diyerek tamamlayıp hemen örneklerle devam edelim ilk örneğimizde Iislemler isimli interface içinde islemgoster ve tutargetir isimli iki metot tanımlaması yapılmış daha sonra tanımlanan bu metotlar IslmeNo isimli sınıf (class) içerisinde kullanılmıştır. programın kodları….
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { public interface Iislemler { void islemgoster(); double tutargetir(); } public class IslemNo : Iislemler {//www.bilisimogretmeni.com private string islemkodu; private string Tarih; private double Tutar; public IslemNo() { islemkodu = " "; Tarih = " "; Tutar = 0.0; } public IslemNo(string c, string d, double a) { islemkodu = c; Tarih = d; Tutar = a; }//www.bilisimogretmeni.com public double tutargetir() { return Tutar; } public void islemgoster() { Console.WriteLine("İşlem No: {0}", islemkodu); Console.WriteLine("Tarih: {0}", Tarih); Console.WriteLine("Tutar: {0}", tutargetir()); } } class Program { static void Main(string[] args) { IslemNo islem1 = new IslemNo("001", "8/10/2012", 78900.00); IslemNo islem2 = new IslemNo();//www.bilisimogretmeni.com IslemNo islem3 = new IslemNo("002", "9/10/2012", 451900.00); islem1.islemgoster(); islem2.islemgoster(); islem3.islemgoster(); Console.ReadKey(); } } }
İkinci C# Interface (Arayüz) örneğimizde bir arabanın çalıştırıp park edilene kadarki olaylarını listeleyen bir interface bu olayları kullanacak olan sınıf örneğimiz ve kodlarımız…
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { public interface IArabaSur { void Calistir(); void Sur(); void Parket(); void VitesDegistir(int vites); void Durdur(); }//www.bilisimogretmeni.com public class Araba : IArabaSur { public void Calistir() { Console.WriteLine("Araba Çalıştırıldı.. Haydi Bismillah "); } public void Sur() { Console.WriteLine("Fazla Hız Yapmadan Sürmeye Devam"); } public void Parket() { Console.WriteLine("Park Etme İşlemi Yapılıyor Dikkat Edin"); } public void VitesDegistir(int vites) { Console.WriteLine(vites.ToString() + " . vitese geçildi hızını ona göre ayarla "); } //www.bilisimogretmeni.com public void Durdur() { Console.WriteLine("Okula geldik : ) hadi geçmiş olsun...."); } } class Program { static void Main(string[] args) { Araba ford = new Araba(); ford.Calistir(); ford.VitesDegistir(2); ford.Sur();//www.bilisimogretmeni.com ford.Parket(); ford.Durdur(); Console.ReadKey(); } } }
Ilk ornekte 2 defa constructor cagirmaniza gerek yok fieldler referans tiplerde otomatik olarak defalut deger alirlar yani ilk constructor u kullanmak bos.
ilk yapıcı metod tanımlanmaz ise IslemNo islem2 = new IslemNo(); böyle bir kullanım olmaz
https://dotnetfiddle.net/EJq2ls
Teşekkürler.