public DigerUrun(Kategori pKategori, int pMiktari, float pAlisFiyati, string pUrunAdi, int pUrunID) { base.AlisFiyati = pAlisFiyati; base.Kategori = pKategori; base.Miktari = pMiktari; base.UrunAdi = pUrunAdi; base.UrunID = pUrunID; }
private static void YeniKategoriEkle() { Console.Write("Lütfen KategoriID giriniz :"); try { var girilenKategoriID = Convert.ToInt32(Console.ReadLine()); foreach (Kategori kategori in kategorilerim) //hata oluşmamışsa kategoriID kontrolü yapılıyor. { if(kategori!=null) //sıradaki kategori eğer boş ise aşağıdaki hata vereceğinden boş değilse devam etsin istedik. if (girilenKategoriID == kategori.KategoriID) { Console.WriteLine("Girmeye çalıştığınız ID, {0} kategorisi için daha önce tanımlanmış\nLütfen benzersiz bir ID girin", kategori.KategoriAdi); return; //bu return'ün amacı YeniKategoriEkle() metotundan çıkış yapmak için kullanıldı. Geri dönüş değeri olmayan metotlardan bu şekilde çıkılabilir. } } //Buraya kadar herhangi bir sorun yoksa (catch bloğuna girilmediyse veya kategori id farklı ise), buradan sonra yeni kategori ekleme işlemi yapılabilir. int bostakiIlkIndex = -1; for (int i = 0; i < kategorilerim.Length; i++) { if (kategorilerim[i]==null) //kategorilerim dizisindeki i numaralı index boş ise bostakiIlkIndex degerine i'yi ata. { bostakiIlkIndex = i; break; //buradan sonra döngünün çalışmasına artık gerek yok. } } if (bostakiIlkIndex==-1) //Bu değer hala böyle kalmış ise dizide hiç boşyer kalmamış demektir. { Console.WriteLine("Kategorilerde hiç boş yeriniz kalmamış"); return; //bu ise YeniKategoriEkle() metotundan çıkmayı sağlayacak. } //Bu satıra gelmeyi başarmışsak bostakiIlkIndex -1'den farklıdır (yani kategorilerde boş index mevcut=boş yer mevcut). Console.Write("Lütfen Kategori Adı giriniz :"); var girilenKategoriAdi = Console.ReadLine(); kategorilerim[bostakiIlkIndex] = new Kategori(girilenKategoriAdi, girilenKategoriID); } catch (FormatException) { Console.WriteLine("Lütfen bir tam sayı girişi yapın"); } }
public Urun(Kategori pKategori, int pMiktari, float pAlisFiyati, string pUrunAdi, int pUrunID) { //Aşağıda yaptığımız işlemin şu an için bir gereği yok. Ancak GetType() metodu ve typeof() için örnek olması açısından yazıyorum. //Biz değerleri girerken zaten farklı bir tipte değer giremeyeceğimizden gerekli değil. if (pKategori.GetType() == typeof(Kategori)) //parametre olarak gelen pKategori'nin tipi Kategori tipinde ise eşitle. Kategori = pKategori; else Kategori = new Kategori("isimsiz Kategori", 0); //değilse bir kategori oluştur. if (pMiktari.GetType() == typeof(int)) //pMiktari'nin tipi int ise atama yap yoksa 0'a eşitle. Miktari = pMiktari; else Miktari = 0; if (pAlisFiyati.GetType() == typeof(float)) //pAlisMiktari'nin tipi float ise kabul et değilse 0f'e eşitle. AlisFiyati = pAlisFiyati; else AlisFiyati = 0f; //0f'den kasıt bu sayının bir float tipte olduğunu belirtir. 0 yazsak da bir sorun olmazdı, kendisi otomatik çevirirdi. //C#'da küçük türler büyük türlere otomatik olarak çevrilir. int<float (tip olarak) _urunAdi = pUrunAdi; //Tip kontrolü gerçekleştirmedim. _urunID = pUrunID; }