Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi C# Fonksiyon Sonuç Döndürme Farkı
#1
Selam


if (c = 0) then
begin
   if (s < 201) then Result:= '2';
   if (s < 401) then Result:= '4';
   if (s < 601) then Result:= '6';
end;

Delphi, beklenildiği üzere 600 den küçük her değerde 6 sonucunu döndürüyor. Ama C#

if (c == 0)
{                
   if (s < 201) return "2";
   if (s < 401) return "4";
   if (s < 601) return "6";
}

2,4,6 sonuçlarını gösterebiliyor. Delphi ile şartları büyükten küçüğe sıralarsak istediğimizi yaparız ben orasında değilim de bu farkın teknik sebebini çok merak ettim.
Cevapla
#2
Delphi çalıştırabileceği/ şartları sağlayan son Result komutuna kadar ilerler. C de ise ilk Return komutunda işlemi yarıda keser.
İşin teknik nedenini bilmiyorum ama tecrübe ve deneyimlerim bu yönde. Smile
Cevapla
#3
Buradaki sonuç programlama mantığında yatıyor.
Aslında delphide ilk kontrol sonucunda result = 2 oluyor ama program çalışmaya devam ettiği için alttaki satırı işleme alıyor ve bu sefer sonuc yanı Result = 4 oluyor. Program çalışmaya devam ettiği için 3. sartırı da işleme sokuyor ve sonuç normal olarak 6 oluyor. Ama C kodunda return var. Yani koşul sağlandığında, diğer satırlar işlenmiyor ve { . . } bloğundan çıkıyor.
Cevapla
#4
@enigma Hocam teşekkürler, iki dili de tasarlayan aynı adam ama farklı bakış açıları getirmiş demek ki. Ayrıca C# (Python) böyle şartlı metotlarda mutlaka bir sonucun döneceği yapı istiyor, bizim Delphi sağ olsun biraz Nasreddin Hoca misali uysa da döndürürüm uymasa da diyor Smile
Cevapla
#5
en azından dönüş emri doğru olsaydı size hak verirdim.

Şöyle deneyin... Bakalım benzerlik oluştu mu ?

function Ornek: String;
const
  c = 0;
  s = 0;
begin
  if (c = 0) then
  begin
     if (s < 201) then Exit('2'); //Result:= '2';
     if (s < 401) then Exit('4'); //Result:= '4';
     if (s < 601) then Exit('6'); //Result:= '6';
  end;
end;



  showmessage( ornek() );
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
@mrmarman Tamamen benim cahilliğimmiş, açık konuşayım böyle bir kullanım olduğunu bilmiyordum, teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi IDE project kısmına Klasör ekleme yanniosman 1 85 01-12-2024, Saat: 12:17
Son Yorum: frmman
  Delphi Paket Yükleme (Warning) kajmerantime 4 157 13-11-2024, Saat: 11:52
Son Yorum: kajmerantime
  Fonksiyon çağırma ermanispir@gmail.com 2 219 29-10-2024, Saat: 15:51
Son Yorum: ermanispir@gmail.com
  Delphi projesini Android App Uygulamasi Apk Metin 3 219 21-10-2024, Saat: 10:43
Son Yorum: m_ekici
  Delphi ile Web Form Alanlarını Doldurma bünyamin68 13 873 30-09-2024, Saat: 14:14
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi