Delphi C# Fonksiyon Sonuç Döndürme Farkı - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: Delphi C# Fonksiyon Sonuç Döndürme Farkı (/showthread.php?tid=6489) |
Delphi C# Fonksiyon Sonuç Döndürme Farkı - Hayati - 19-12-2021 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. Delphi C# Fonksiyon Sonuç Döndürme Farkı - frmman - 19-12-2021 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. Delphi C# Fonksiyon Sonuç Döndürme Farkı - enigma - 19-12-2021 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. Delphi C# Fonksiyon Sonuç Döndürme Farkı - Hayati - 19-12-2021 @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 Delphi C# Fonksiyon Sonuç Döndürme Farkı - mrmarman - 19-12-2021 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() ); Delphi C# Fonksiyon Sonuç Döndürme Farkı - Hayati - 19-12-2021 @mrmarman Tamamen benim cahilliğimmiş, açık konuşayım böyle bir kullanım olduğunu bilmiyordum, teşekkürler. |