Aşırı Yüklenmiş Metod Kullanımında Yardım Lazım
-
Olay başlıkta yazdığı gibi,ama biraz farklı. Aşırı yükleme yapma kısmında sorun yok ama aktarılacak parametreleri halledemiyorum.
Mesela alan hesabı metodu yazıyorum biri int biri float kullanıyo...buna parametreleri metod(32,25) şeklinde atayınca sıkıntı yok, ancak parametreler kullanıcıdan alıncak olunca iş karışıyor. Sonuçta olay aşırı yükleme, değişken tipi net olmayınca ne okutacağını bilmiyosun,parametre kısmında readline falan kullanıncada olmuyor...
bunu nasıl yapabilirim? adamlar double kullanmış direk sonuç tam olsun diye,ama ben intide kullanayım diye düşündüm. alan hesabı için gereksiz tabi :D ama belki bigün gerekir diye araştırıyorum.
-
constructor kullanmayı denedin mi ?
-
kurucu fonksiyonu biliyorum. dedim ya zaten metod(123123,12313) gibi ilk değeri atanmış şekilde olunca sorun yok,dediğin gibi kurucu kullanılırsada sorun yok.
benim dediğim şey aşırı yüklenmiş fonksiyona parametreyi kullanıcının girmesi. yani şöyle düşün;
karealanı(int kenar)
{hedehödö}
karealanı(double kenar)
{hedehödö}
daha sonrada main fonksiyonu içinde
kenar = console.readline();
gibi okutucam. Ancak kenarı herhangi bi tipte tanımlarsam ne anlamı kaldı aşırıyüklemenin?
metodu
karealanı(console.readline);
şeklinde çağırıncada okunan değer string oluyo bunu sayı tiplerinden birine çevirmek gerekiyo yine aşırı yüklemenin bi anlamı kalmıyo...
yani ben diyorumki kullanıcı kafasına göre girecek uygulama girilen değeri metodda çalıştıracak
-
bahsettiğin şeyde methodu overload etmeye gerek yok gelen parametreyi double a çevirip double parametre alan methodla işlem yaparsın.
illa herşeyde overloading yapılacak diye bişey yok gerektiği yerde kullanırsın.
class dortgen { double en; double boy; //KARE public double alanhesapla(double kenar) { this.en = kenar; this.boy = kenar; .... } //DİKDÖRTGEN public double alanhesapla(double En, double Boy) { this.en = En; this.boy = Boy; .... } } //readline dan gelen veriyi almak için double kenar; try { kenar = Convert.ToDouble(console.readline()); bıd bıdı .. } catch(ex) { Console.Writeline(ex.Message) }
